gpt4 book ai didi

mysql - 在 MySQL 中跨服务器/数据库向同一个表插入数据时,如何保持相同的自增 id?

转载 作者:行者123 更新时间:2023-11-29 08:21:08 24 4
gpt4 key购买 nike

我有一个包含 3 行的查找表:

id | name
=== =======
1 Pendig
2 Sent
3 Failed

当我将此数据插入到另一个服务器/数据库上的另一个表中时,如何确保使用相同的自动递增 ID 创建相同的值(名称)?

既然是查找表,我可以直接插入表中并指定id吗?

最佳答案

您始终可以通过指定来覆盖 auto_increment 表中的插入 ID:

INSERT INTO yourtable (id, name) VALUES (2, 'Sent');

2将作为ID值填充到表中。直到执行任何其他插入并且表的内置 auto_increment 值恰好达到您自己插入的值为止,这都可以正常工作,例如,假设一个全新的新创建的表:

INSERT INTO yourtable (id, name) VALUES (2, 'Sent'); // force an ID
INSERT INTO yourtable (id, name) VALUES (NULL, 'foo'); // DB assigns 1
INSERT INTO yourtable (name) VALUES ('foo'); // DB assigns 2

第一个查询成功,第二个查询成功,第三个查询因主键冲突而失败,因为数据库生成的“2”id 现在与您手动插入的 ID 冲突。

如果您想确保不同数据库实例之间的ID和auto_increment兼容性,请使用mysql_dump为您吐出表。它将确保表中的所有 ID 都被保留,并且内部 auto_increment 指针也被正确发送。

关于mysql - 在 MySQL 中跨服务器/数据库向同一个表插入数据时,如何保持相同的自增 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19390879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com