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

主库在远程服务器上的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到从库中。

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

相关推荐
爱喝水的鱼丶8 分钟前
SAP-ABAP:数据类型与数据对象(8篇) 第七篇:进阶优化篇——基于类型与对象特征的性能优化技巧
运维·数据库·学习·性能优化·sap·abap·开发交流
SelectDB技术团队12 分钟前
PB 级自动驾驶数据秒级检索:Apache Doris 统一多模态数据平台实践
数据库·人工智能·自动驾驶·apache doris·selectdb
爱编程的小新☆23 分钟前
LangGraph4j工作流框架
前端·数据库·ai·langchain·langgraph4j
programhelp_35 分钟前
Google 2026 New Grad SDE VO 三轮面试详解 | 含Behavioral、Coding、Design
java·服务器·数据库
czhc11400756631 小时前
数据库520 HALCONAN安装
数据库
阿坤带你走近大数据1 小时前
Oracle中的OGG介绍
数据库·oracle
Ether IC Verifier1 小时前
TCP/IP协议握手原理详解——结合以太网连接过程
服务器·网络·数据库·网络协议·tcp/ip
宋浮檀s1 小时前
SQL注入基础+DVWA搭建
数据库·sql·安全·网络安全
Amarantine、沐风倩✨1 小时前
Oracle 性能排查:通过 V$LONG_EXEC_SQLS 快速定位慢 SQL
数据库·sql·oracle
倔强的石头1061 小时前
生产环境排坑实录:SQL 标量子查询的“静默杀手”与优化器的智能推演
数据库·sql