Open LieLieLiekey opened 1 year ago
问题: 请教下,我目前使用 otter 进行数据库 A 到数据库 B 的单向同步时,当在 B 中插入一条数据,数据库 A 中又插入一条同样主键的数据,然后同步到 B,会出现数据同步冲突吗?有看过相关文档没找到这个信息。。。
现实场景是这样: 同步配置如下:
创建一个表 dch_test, 唯一键/主键 是 ID列
CREATE TABLE `dch_test` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', `value` varchar(128) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
然后我在数据库 B 中插入一条数据 ,此时观察了下数据库,预期的数据库 B 中有该数据, 数据库 A没有
INSERT INTO `dch_test` (`id`, `value`) VALUES (1, '第一次');
然后我又在数据库 A 中插入一条数据,观察了下,数据库 A 和 B 都变为 (1, '第二次')。
`INSERT INTO `dch_test` (`id`, `value`) VALUES (1, '第二次'); `,
看起来好像 A 同步这条语句到 B 后发现有冲突就直接改为UPDATE了?
我感觉数据冲突的处理策略主要有三种,1. 忽略冲突。2. 覆盖冲突的数据,用主站覆盖或最新数据覆盖。3. 停止同步并报错
otter这里的处理策略是第二种吗?任何时候都是?或者有没有相关控制的参数
问题: 请教下,我目前使用 otter 进行数据库 A 到数据库 B 的单向同步时,当在 B 中插入一条数据,数据库 A 中又插入一条同样主键的数据,然后同步到 B,会出现数据同步冲突吗?有看过相关文档没找到这个信息。。。
现实场景是这样: 同步配置如下:
创建一个表 dch_test, 唯一键/主键 是 ID列
然后我在数据库 B 中插入一条数据 ,此时观察了下数据库,预期的数据库 B 中有该数据, 数据库 A没有
然后我又在数据库 A 中插入一条数据,观察了下,数据库 A 和 B 都变为 (1, '第二次')。
看起来好像 A 同步这条语句到 B 后发现有冲突就直接改为UPDATE了?