做双主复制时按照网上的教程,为了防止自增主键冲突
设置了
auto-increment-increment = 2 //每次增长 2
auto-increment-offset = 1 //设置自动增长的字段的偏移量,即初始值为 1
B 设置了
auto-increment-increment = 2 //每次增长 2
auto-increment-offset = 2 //设置自动增长的字段的偏移量,即初始值为 2
这样 A 数据的自增主键就变成了 1、3、5、7 ....
B 数据的自增主键就变成了 2、4、6、8 ...
现在有个问题的是,这个主键同时也是外键,被别的表给引用,例如用户表的主键 id,代表用户 ID
在记录用户登录记录时 insert loginlog(userid, time, ip) values(1,xxx,xxx)
这条语句被同步到 B 的时候,userid 也是 1,但实际上,用户在 B 上的 ID 是 2。
这样 B 表的数据就会错乱,请问这种问题怎么解决,因为之前的业务没考虑这种复制问题,想在想到的解决办法是,用个新的 userid 字段代表用户 ID,但是这种改动太大了, 请问各位大佬还有没有其它办法,或者是我的双主复制做的有问题呢,谢谢。
设置了
auto-increment-increment = 2 //每次增长 2
auto-increment-offset = 1 //设置自动增长的字段的偏移量,即初始值为 1
B 设置了
auto-increment-increment = 2 //每次增长 2
auto-increment-offset = 2 //设置自动增长的字段的偏移量,即初始值为 2
这样 A 数据的自增主键就变成了 1、3、5、7 ....
B 数据的自增主键就变成了 2、4、6、8 ...
现在有个问题的是,这个主键同时也是外键,被别的表给引用,例如用户表的主键 id,代表用户 ID
在记录用户登录记录时 insert loginlog(userid, time, ip) values(1,xxx,xxx)
这条语句被同步到 B 的时候,userid 也是 1,但实际上,用户在 B 上的 ID 是 2。
这样 B 表的数据就会错乱,请问这种问题怎么解决,因为之前的业务没考虑这种复制问题,想在想到的解决办法是,用个新的 userid 字段代表用户 ID,但是这种改动太大了, 请问各位大佬还有没有其它办法,或者是我的双主复制做的有问题呢,谢谢。
