peilinqian commented on issue #22058: URL: https://github.com/apache/shardingsphere/issues/22058#issuecomment-1310170772
> Hi @peilinqian Thanks for your feedback, and I have reproduced the problem from master branch. > > We get this error message because a single table already exists in the resource registered, and after creating the `READWRITE_SPLITTING RULE`, the single table will use the aggregate data source `readwrite_ds`. Therefore, if there is no table in the registered resource, this `readwrite_ds` can be dropped. > > ### The latest reproduction process: > ```sql > REGISTER STORAGE UNIT write_ds ( > HOST="127.0.0.1", > PORT=3306, > DB="demo_write_ds", > USER="root", > PASSWORD="123456" > ), read_ds ( > HOST="127.0.0.1", > PORT=3306, > DB="demo_read_ds", > USER="root", > PASSWORD="123456" > ); > > SET DEFAULT SINGLE TABLE STORAGE UNIT = write_ds; > > CREATE TABLE `t_order` ( > `order_id` bigint(20) NOT NULL AUTO_INCREMENT, > `user_id` int(11) NOT NULL, > `status` varchar(50) DEFAULT NULL, > PRIMARY KEY (`order_id`) > ); > > CREATE READWRITE_SPLITTING RULE group_0 ( > WRITE_STORAGE_UNIT=write_ds, > READ_STORAGE_UNITS(read_ds), > TYPE(NAME="random") > ); > > DROP READWRITE_SPLITTING RULE group_0; > ``` > > Error: Readwrite splitting rules `[group_0]` in database `xxx` are still in used. > > ### Analyze > I would say that this restriction is actually correct. Consider a scenario: When `write_ds` and `read_ds` are a set of primary-replica cluster, when there is already a table, dropping the rule may cause `INSERT SQL` to be routed to `read_ds`, which will cause serious errors. > > Therefore, if there is already a single table in the logic database that uses `readwrite_ds`, dropping rule is not allowed. > > So, what are the scenarios where you need to drop the rules when using the primary-replica cluster? Thank U, I already understand the reason for my problem。 So the only scenario can't drop the rules is when there is already a table in real database ? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
