一个主从库主键同步的方案(未完)

主库在远程服务器上的mysql,主键id是自增的,同时有记录中的其它字段(如parent)需要以这个ID关联。

现在,要做一个桌面版的,方便离线的时候使用,所以,没法直接操作主库上的数据,使用本地sqlite的数据库,就要在主从库间同步这个数据。如果从库也自增就会与主库ID冲突。

方案一:主从库都使用时间戳作ID,并且到毫秒级,其假设是用户不会在同一时间点同时在web端和桌面端操作。

javascript 复制代码
 const timestampId = Math.floor(Date.now() / 1000);

因为要到毫秒级,mysql的主键字段要使用

sqlit要使用。

方案二:

在表中除主键字段外,增加一个从键字段,在桌面端数据新增时,按桌面端的规则生成主键ID,并在外键上使用的这个ID,而从键也备份主键的值。

同步到主库时,

(1)使用INSERT语句插入,包括从键,但不包括主键,让主库自增ID,

(2)然后作一个UPDATE操作,以从键的值作关联查询,把外键中值替换为主库的ID,实现了ID替换。

(3)把这些更新的主键ID值再更新回从库

同步到从库时,则是连主键一起INSERT到从库中。

具体是否可行,还待进一步测试

相关推荐
菜菜小狗的学习笔记2 小时前
黑马程序员Redis--问题整理(黑马点评)
数据库·redis·缓存
不会聊天真君6472 小时前
pgsql笔记
数据库·笔记
echola_mendes2 小时前
InfluxDB(一)——一个高效处理数据的时序数据库
数据库·时序数据库
jeCA EURG2 小时前
mysql用户名怎么看
数据库·mysql
主角1 72 小时前
MySQL故障排查与优化
数据库·mysql
未来转换2 小时前
PostgreSQL教程
数据库·postgresql
周杰伦的稻香2 小时前
PostgreSQL 16.3中复制槽的配置
数据库·postgresql
独断万古他化2 小时前
本地缓存与Redis缓存详解:区别、优缺点及场景选型
数据库·redis·缓存
Thomas.Sir2 小时前
第八章:RAG知识库开发之【Dify 实现数据库数据智能查询系统:从零构建企业级自然语言查询助手】
数据库·python·ai·dify