mysql - 在 MySQL 中插入具有唯一 ID 冲突的旧数据

标签 mysql database primary-key

我正在开发一个最近进行了升级的中型网站。在那次升级期间,数据库的部分没有被转移。现在新网站已经上线一个多月了,我的老板希望将缺失的部分重新整合进去。

我需要传输几组具有唯一自动分配主键 ID 的表。生产数据库中已经存在冲突的键,所以我不能只插入所有行。

我想为旧数据中的所有主键添加一个基数(可能是 10000)。这将确保与新数据库中已有的内容没有冲突,但我不确定 MySQL 将如何 react 。我也一直想知道是否有更好和/或标准的方法来完成此任务。

插入数据的最佳方式是什么?

最佳答案

正如我的问题的评论中提到的,迁移脚本是可行的方法。这可以是您的数据库平台的实际迁移脚本,也可以是您选择的语言的脚本,它从 1 个数据库读取数据并将数据添加到第二个数据库。

像我在问题中描述的那样添加“基数”是一个坏主意,并且可能会在未来的传输过程中导致错误。

我最终手动解决了冲突的 ID,这实际上是由于之前的开发人员试图在早期迁移期间向所有 ID 添加基数,而不是将错误的重复数据引入数据库。

关于mysql - 在 MySQL 中插入具有唯一 ID 冲突的旧数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10853602/

相关文章:

c# - 将数据库查询添加到现有项目

database - 创建巨大倒排索引的方法

python - 当主键为 true 时,SQLAlchemy 无法捕获非空约束

database - 质数属性可以有空值吗?

php - Jquery 倒计时器与 php 未按预期执行

mysql - 根据其他列的值填充列 SQL

database - 树状数据结构的转换语言

mysql - 在网站系统的许多表中使用电子邮件地址作为主键是一种好习惯吗?

mysql - 如何与 nopCommerce 一起创建插件(例如创建优惠券代码)?

同一表中的Mysql子查询COUNT返回NULL