Closed peixingzhe closed 2 years ago
Hi @PeiMouRen
You don't need to specify orderId
. Just
insert into t_order (logtime, phone) values (#{logtime}, #{phone})
Hi @TeslaCN This is the result of not specifying a primary key
Could you try putting a breakpoint into org.apache.shardingsphere.sharding.rule.ShardingRule
and checking the configurations?
As you can see, the configuration is read, but it does not take effect。
This method is not called when executing INSERT, can someone help to solve this problem?
spring boot config:
spring:
shardingsphere:
database:
name:
mode:
type: Standalone
repository:
type: File
props:
path: .shardingsphere
overwrite: true
datasource:
names: ds0, ds1
ds0:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: org.postgresql.Driver
jdbc-url: jdbc:postgresql://localhost:5432/shard1?stringtype=unspecified
username: root
password: 123
ds1:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: org.postgresql.Driver
jdbc-url: jdbc:postgresql://localhost:5432/shard2?stringtype=unspecified
username: root
password: 123
rules:
sharding:
tables:
t_order:
actual-data-nodes: ds$->{0..1}.t_order_$->{0..1}
database-strategy:
standard:
sharding-column: user_id
sharding-algorithm-name: database-inline
table-strategy:
standard:
sharding-column: order_id
sharding-algorithm-name: t-order-inline
key-generate-strategy:
column: order_id
key-generator-name: snowflake
sharding-algorithms:
database-inline:
type: INLINE
props:
algorithm-expression: ds$->{user_id % 2}
t-order-inline:
type: INLINE
props:
algorithm-expression: t_order_$->{order_id % 2}
key-generators:
snowflake:
type: SNOWFLAKE
props:
sql-show: true
DDL:
# ds0
create table t_order_0(order_id bigint, user_id int, remark varchar(200));
create table t_order_1(order_id bigint, user_id int, remark varchar(200));
# ds1
create table t_order_0(order_id bigint, user_id int, remark varchar(200));
create table t_order_1(order_id bigint, user_id int, remark varchar(200));
sql:
...
@Insert("insert into t_order(user_id, remark) values ( #{userId}, #{remark})")
void add4(@Param("userId") int userId, @Param("remark") String remark);
...
orderDao.add4(100, "test");
error: Because no order_id was generated. this error disappeared when I switched the data source to mysql.
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: java.lang.IllegalStateException: Insert statement does not support sharding table routing to multiple data nodes.
### The error may exist in com/lhx/shardingjdbcdemo/dao/OrderDao.java (best guess)
### The error may involve com.lhx.shardingjdbcdemo.dao.OrderDao.add4-Inline
### The error occurred while setting parameters
### SQL: insert into t_order(user_id, remark) values ( ?, ?)
Thanks for your input, we will check this.
I modify the example https://github.com/apache/shardingsphere/tree/master/examples/shardingsphere-jdbc-example/single-feature-example/sharding-example/sharding-spring-boot-mybatis-example to adapt PostgreSQL and run it. And the key generator worked.
The logic SQL doesn't have column order_id
, the generated key is inserted into the actual SQL.
---------------------------- Insert Data ----------------------------
[INFO ] 2022-07-29 10:27:53,672 --main-- [ShardingSphere-SQL] Logic SQL: INSERT INTO t_order (user_id, address_id, status) VALUES (?, ?, ?);
[INFO ] 2022-07-29 10:27:53,672 --main-- [ShardingSphere-SQL] SQLStatement: PostgreSQLInsertStatement(super=InsertStatement(super=AbstractSQLStatement(parameterCount=3, parameterMarkerSegments=[ParameterMarkerExpressionSegment(startIndex=58, stopIndex=58, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)], commentSegments=[]), table=SimpleTableSegment(tableName=TableNameSegment(startIndex=12, stopIndex=18, identifier=IdentifierValue(value=t_order, quoteCharacter=NONE)), owner=Optional.empty, alias=Optional.empty), insertColumns=Optional[InsertColumnsSegment(startIndex=20, stopIndex=48, columns=[ColumnSegment(startIndex=21, stopIndex=27, identifier=IdentifierValue(value=user_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=30, stopIndex=39, identifier=IdentifierValue(value=address_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=42, stopIndex=47, identifier=IdentifierValue(value=status, quoteCharacter=NONE), owner=Optional.empty)])], insertSelect=Optional.empty, values=[InsertValuesSegment(startIndex=57, stopIndex=65, values=[ParameterMarkerExpressionSegment(startIndex=58, stopIndex=58, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)])]), withSegment=Optional.empty)
[INFO ] 2022-07-29 10:27:53,672 --main-- [ShardingSphere-SQL] Actual SQL: ds-1 ::: INSERT INTO t_order (user_id, address_id, status, order_id) VALUES (?, ?, ?, ?); ::: [1, 1, INSERT_TEST, 759722980832968704]
[INFO ] 2022-07-29 10:27:53,679 --main-- [ShardingSphere-SQL] Logic SQL: INSERT INTO t_order_item (order_id, user_id, status) VALUES (?, ?, ?);
[INFO ] 2022-07-29 10:27:53,679 --main-- [ShardingSphere-SQL] SQLStatement: PostgreSQLInsertStatement(super=InsertStatement(super=AbstractSQLStatement(parameterCount=3, parameterMarkerSegments=[ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=67, stopIndex=67, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)], commentSegments=[]), table=SimpleTableSegment(tableName=TableNameSegment(startIndex=12, stopIndex=23, identifier=IdentifierValue(value=t_order_item, quoteCharacter=NONE)), owner=Optional.empty, alias=Optional.empty), insertColumns=Optional[InsertColumnsSegment(startIndex=25, stopIndex=51, columns=[ColumnSegment(startIndex=26, stopIndex=33, identifier=IdentifierValue(value=order_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=36, stopIndex=42, identifier=IdentifierValue(value=user_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=45, stopIndex=50, identifier=IdentifierValue(value=status, quoteCharacter=NONE), owner=Optional.empty)])], insertSelect=Optional.empty, values=[InsertValuesSegment(startIndex=60, stopIndex=68, values=[ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=67, stopIndex=67, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)])]), withSegment=Optional.empty)
[INFO ] 2022-07-29 10:27:53,679 --main-- [ShardingSphere-SQL] Actual SQL: ds-1 ::: INSERT INTO t_order_item (order_id, user_id, status, order_item_id) VALUES (?, ?, ?, ?); ::: [759722980832968704, 1, INSERT_TEST, 759722981160124417]
[INFO ] 2022-07-29 10:27:53,681 --main-- [ShardingSphere-SQL] Logic SQL: INSERT INTO t_order (user_id, address_id, status) VALUES (?, ?, ?);
[INFO ] 2022-07-29 10:27:53,681 --main-- [ShardingSphere-SQL] SQLStatement: PostgreSQLInsertStatement(super=InsertStatement(super=AbstractSQLStatement(parameterCount=3, parameterMarkerSegments=[ParameterMarkerExpressionSegment(startIndex=58, stopIndex=58, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)], commentSegments=[]), table=SimpleTableSegment(tableName=TableNameSegment(startIndex=12, stopIndex=18, identifier=IdentifierValue(value=t_order, quoteCharacter=NONE)), owner=Optional.empty, alias=Optional.empty), insertColumns=Optional[InsertColumnsSegment(startIndex=20, stopIndex=48, columns=[ColumnSegment(startIndex=21, stopIndex=27, identifier=IdentifierValue(value=user_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=30, stopIndex=39, identifier=IdentifierValue(value=address_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=42, stopIndex=47, identifier=IdentifierValue(value=status, quoteCharacter=NONE), owner=Optional.empty)])], insertSelect=Optional.empty, values=[InsertValuesSegment(startIndex=57, stopIndex=65, values=[ParameterMarkerExpressionSegment(startIndex=58, stopIndex=58, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)])]), withSegment=Optional.empty)
[INFO ] 2022-07-29 10:27:53,681 --main-- [ShardingSphere-SQL] Actual SQL: ds-0 ::: INSERT INTO t_order (user_id, address_id, status, order_id) VALUES (?, ?, ?, ?); ::: [2, 2, INSERT_TEST, 759722981168513024]
[INFO ] 2022-07-29 10:27:53,683 --main-- [ShardingSphere-SQL] Logic SQL: INSERT INTO t_order_item (order_id, user_id, status) VALUES (?, ?, ?);
[INFO ] 2022-07-29 10:27:53,683 --main-- [ShardingSphere-SQL] SQLStatement: PostgreSQLInsertStatement(super=InsertStatement(super=AbstractSQLStatement(parameterCount=3, parameterMarkerSegments=[ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=67, stopIndex=67, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)], commentSegments=[]), table=SimpleTableSegment(tableName=TableNameSegment(startIndex=12, stopIndex=23, identifier=IdentifierValue(value=t_order_item, quoteCharacter=NONE)), owner=Optional.empty, alias=Optional.empty), insertColumns=Optional[InsertColumnsSegment(startIndex=25, stopIndex=51, columns=[ColumnSegment(startIndex=26, stopIndex=33, identifier=IdentifierValue(value=order_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=36, stopIndex=42, identifier=IdentifierValue(value=user_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=45, stopIndex=50, identifier=IdentifierValue(value=status, quoteCharacter=NONE), owner=Optional.empty)])], insertSelect=Optional.empty, values=[InsertValuesSegment(startIndex=60, stopIndex=68, values=[ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=67, stopIndex=67, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)])]), withSegment=Optional.empty)
[INFO ] 2022-07-29 10:27:53,683 --main-- [ShardingSphere-SQL] Actual SQL: ds-0 ::: INSERT INTO t_order_item (order_id, user_id, status, order_item_id) VALUES (?, ?, ?, ?); ::: [759722981168513024, 2, INSERT_TEST, 759722981172707329]
[INFO ] 2022-07-29 10:27:53,684 --main-- [ShardingSphere-SQL] Logic SQL: INSERT INTO t_order (user_id, address_id, status) VALUES (?, ?, ?);
[INFO ] 2022-07-29 10:27:53,684 --main-- [ShardingSphere-SQL] SQLStatement: PostgreSQLInsertStatement(super=InsertStatement(super=AbstractSQLStatement(parameterCount=3, parameterMarkerSegments=[ParameterMarkerExpressionSegment(startIndex=58, stopIndex=58, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)], commentSegments=[]), table=SimpleTableSegment(tableName=TableNameSegment(startIndex=12, stopIndex=18, identifier=IdentifierValue(value=t_order, quoteCharacter=NONE)), owner=Optional.empty, alias=Optional.empty), insertColumns=Optional[InsertColumnsSegment(startIndex=20, stopIndex=48, columns=[ColumnSegment(startIndex=21, stopIndex=27, identifier=IdentifierValue(value=user_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=30, stopIndex=39, identifier=IdentifierValue(value=address_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=42, stopIndex=47, identifier=IdentifierValue(value=status, quoteCharacter=NONE), owner=Optional.empty)])], insertSelect=Optional.empty, values=[InsertValuesSegment(startIndex=57, stopIndex=65, values=[ParameterMarkerExpressionSegment(startIndex=58, stopIndex=58, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)])]), withSegment=Optional.empty)
[INFO ] 2022-07-29 10:27:53,684 --main-- [ShardingSphere-SQL] Actual SQL: ds-1 ::: INSERT INTO t_order (user_id, address_id, status, order_id) VALUES (?, ?, ?, ?); ::: [3, 3, INSERT_TEST, 759722981181095936]
[INFO ] 2022-07-29 10:27:53,685 --main-- [ShardingSphere-SQL] Logic SQL: INSERT INTO t_order_item (order_id, user_id, status) VALUES (?, ?, ?);
[INFO ] 2022-07-29 10:27:53,685 --main-- [ShardingSphere-SQL] SQLStatement: PostgreSQLInsertStatement(super=InsertStatement(super=AbstractSQLStatement(parameterCount=3, parameterMarkerSegments=[ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=67, stopIndex=67, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)], commentSegments=[]), table=SimpleTableSegment(tableName=TableNameSegment(startIndex=12, stopIndex=23, identifier=IdentifierValue(value=t_order_item, quoteCharacter=NONE)), owner=Optional.empty, alias=Optional.empty), insertColumns=Optional[InsertColumnsSegment(startIndex=25, stopIndex=51, columns=[ColumnSegment(startIndex=26, stopIndex=33, identifier=IdentifierValue(value=order_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=36, stopIndex=42, identifier=IdentifierValue(value=user_id, quoteCharacter=NONE), owner=Optional.empty), ColumnSegment(startIndex=45, stopIndex=50, identifier=IdentifierValue(value=status, quoteCharacter=NONE), owner=Optional.empty)])], insertSelect=Optional.empty, values=[InsertValuesSegment(startIndex=60, stopIndex=68, values=[ParameterMarkerExpressionSegment(startIndex=61, stopIndex=61, parameterMarkerIndex=0, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=64, stopIndex=64, parameterMarkerIndex=1, parameterMarkerType=QUESTION, alias=Optional.empty), ParameterMarkerExpressionSegment(startIndex=67, stopIndex=67, parameterMarkerIndex=2, parameterMarkerType=QUESTION, alias=Optional.empty)])]), withSegment=Optional.empty)
[INFO ] 2022-07-29 10:27:53,685 --main-- [ShardingSphere-SQL] Actual SQL: ds-1 ::: INSERT INTO t_order_item (order_id, user_id, status, order_item_id) VALUES (?, ?, ?, ?); ::: [759722981181095936, 3, INSERT_TEST, 759722981185290241]
Changes:
wuweijie@wuweijie-ubuntu:~/projects/shardingsphere/examples (branch: master!)
$ git diff | cat
diff --git a/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/AddressMapper.xml b/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/AddressMapper.xml
index 2ade012b8c3..690a8481fe9 100644
--- a/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/AddressMapper.xml
+++ b/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/AddressMapper.xml
@@ -24,7 +24,7 @@
</resultMap>
<update id="createTableIfNotExists">
- CREATE TABLE IF NOT EXISTS t_address (address_id BIGINT NOT NULL, address_name VARCHAR(100) NOT NULL, PRIMARY KEY (address_id));
+ CREATE TABLE IF NOT EXISTS t_address (address_id BIGINT primary key, address_name VARCHAR(100) NOT NULL);
</update>
<update id="truncateTable">
diff --git a/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/OrderItemMapper.xml b/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/OrderItemMapper.xml
index 48aae459c00..d605bc541ec 100644
--- a/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/OrderItemMapper.xml
+++ b/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/OrderItemMapper.xml
@@ -26,7 +26,7 @@
</resultMap>
<update id="createTableIfNotExists">
- CREATE TABLE IF NOT EXISTS t_order_item (order_item_id BIGINT AUTO_INCREMENT, order_id BIGINT, user_id INT NOT NULL, status VARCHAR(50) , PRIMARY KEY (order_item_id));
+ CREATE TABLE IF NOT EXISTS t_order_item (order_item_id BIGINT primary key, order_id BIGINT, user_id INT NOT NULL, status VARCHAR(50));
</update>
<update id="truncateTable">
diff --git a/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/OrderMapper.xml b/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/OrderMapper.xml
index d32c53c0296..040b2d08b29 100644
--- a/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/OrderMapper.xml
+++ b/examples/example-core/example-spring-mybatis/src/main/resources/META-INF/mappers/OrderMapper.xml
@@ -26,7 +26,7 @@
</resultMap>
<update id="createTableIfNotExists">
- CREATE TABLE IF NOT EXISTS t_order (order_id BIGINT AUTO_INCREMENT, user_id INT NOT NULL, address_id BIGINT NOT NULL, status VARCHAR(50), PRIMARY KEY (order_id));
+ CREATE TABLE IF NOT EXISTS t_order (order_id BIGINT primary key, user_id INT NOT NULL, address_id BIGINT NOT NULL, status VARCHAR(50));
</update>
<update id="truncateTable">
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/sharding-example/sharding-spring-boot-mybatis-example/pom.xml b/examples/shardingsphere-jdbc-example/single-feature-example/sharding-example/sharding-spring-boot-mybatis-example/pom.xml
index 0a2d2a1125a..158661be90f 100644
--- a/examples/shardingsphere-jdbc-example/single-feature-example/sharding-example/sharding-spring-boot-mybatis-example/pom.xml
+++ b/examples/shardingsphere-jdbc-example/single-feature-example/sharding-example/sharding-spring-boot-mybatis-example/pom.xml
@@ -48,5 +48,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.4.200</version>
+ </dependency>
</dependencies>
</project>
diff --git a/examples/shardingsphere-jdbc-example/single-feature-example/sharding-example/sharding-spring-boot-mybatis-example/src/main/resources/application-sharding-databases.properties b/examples/shardingsphere-jdbc-example/single-feature-example/sharding-example/sharding-spring-boot-mybatis-example/src/main/resources/application-sharding-databases.properties
index 1630ddc75b2..b06120ed98c 100644
--- a/examples/shardingsphere-jdbc-example/single-feature-example/sharding-example/sharding-spring-boot-mybatis-example/src/main/resources/application-sharding-databases.properties
+++ b/examples/shardingsphere-jdbc-example/single-feature-example/sharding-example/sharding-spring-boot-mybatis-example/src/main/resources/application-sharding-databases.properties
@@ -17,17 +17,17 @@
spring.shardingsphere.datasource.names=ds-0,ds-1
-spring.shardingsphere.datasource.ds-0.jdbc-url=jdbc:mysql://localhost:3306/demo_ds_0?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
+spring.shardingsphere.datasource.ds-0.jdbc-url=jdbc:postgresql://localhost:5432/demo_ds_0
spring.shardingsphere.datasource.ds-0.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.ds-0.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.ds-0.username=root
-spring.shardingsphere.datasource.ds-0.password=
+spring.shardingsphere.datasource.ds-0.driver-class-name=org.postgresql.Driver
+spring.shardingsphere.datasource.ds-0.username=postgres
+spring.shardingsphere.datasource.ds-0.password=postgres
-spring.shardingsphere.datasource.ds-1.jdbc-url=jdbc:mysql://localhost:3306/demo_ds_1?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
+spring.shardingsphere.datasource.ds-1.jdbc-url=jdbc:postgresql://localhost:5432/demo_ds_1
spring.shardingsphere.datasource.ds-1.type=com.zaxxer.hikari.HikariDataSource
-spring.shardingsphere.datasource.ds-1.driver-class-name=com.mysql.jdbc.Driver
-spring.shardingsphere.datasource.ds-1.username=root
-spring.shardingsphere.datasource.ds-1.password=
+spring.shardingsphere.datasource.ds-1.driver-class-name=org.postgresql.Driver
+spring.shardingsphere.datasource.ds-1.username=postgres
+spring.shardingsphere.datasource.ds-1.password=postgres
spring.shardingsphere.rules.sharding.default-database-strategy.standard.sharding-column=user_id
spring.shardingsphere.rules.sharding.default-database-strategy.standard.sharding-algorithm-name=database-inline
Hi @PeiMouRen, can you check your config file in user home .shardingsphere
dirctory? It may be caused by old config. You can also provide a demo to reproduce this exception.
I think the problem has to do with the schema of PG,because my table is placed under the new schema, instead of the default public schema, we can see someinformation with DEBUG, the generatedKeyContext
is null,because the shema
does't contain any tables.
When I put the table into the default schema(public
), distributed primary keys were generated normally.
@PeiMouRen Yes, currently ShardingSphere only supports specifying schema in SQL, otherwise the default public schema is used. You can try to specify schema in SQL to solve this problem.
ok,the problem is solved when i specifying the schema in sql!!! May I ask again if ShardingSphere plans to make adjustments to this problem?
ok,the problem is solved when i specifying the schema in sql!!! May I ask again if ShardingSphere plans to make adjustments to this problem?
If there are no other higher priority requirements, we plan to provide support for PostgreSQL search path
in the next release.
ok. thank you.
spring boot config:
How do I specify the primary key column value when I insert a piece of data using MyBatis? example:
insert into t_order(order_id, logtime, phone) values (#{orderId}, #{logtime}, #{phone})
How do I get #{orderId} with the Snowflake algorithm