RaigorJiang commented on issue #22058:
URL: 
https://github.com/apache/shardingsphere/issues/22058#issuecomment-1310145360

   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?


-- 
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]

Reply via email to