版本:apache-shardingsphere-4.1.1-sharding-proxy
业务场景:
业务系统原先采用mycat中间件完成分库分表,目前替换为sharding-proxy
核心表为wo_work_order,关联十余张子表,形成父子表,
wo_work_order表主键id和子表唯一索引列work_order_id采用hash规则决定分片,父子表保证同一个工单数据在同一个分片库,子表插入时采用MySQL的insert into on dumplicat key update语法完成插入/更新操作,
子表的work_order_id列已建立唯一索引
问题描述:
子表插入出现数据重复,测试过正常用insert插入,字段名都写全(全部字段),分片都是均匀的,没有重复的,连接程序写入的时候,就会出现子表insert有重复数据,程序写入用的insert into wo_work_order_detail
(work_order_id, personal_name) values (123,‘test’)
ON DUPLICATE KEY UPDATE
personal_name = values(personal_name)没有id的,(不是全部字段),这样子表就会重复数据产生。