如何使用MYSQL在新表中创建新ID
我见过很多标题或兴趣相似但与我所寻找的不同的问题 我有一个表,其中已经有一些数据,有一个id列。我希望表中已有的几千行数据的id保持不变。我想从另一个表中插入不同的数据,该表还包括id(在这个集合中略多于92000行),我需要将这些id更改为其他一些不存在的id,以便不覆盖或替换已经存在的数据 这可能吗?插入时是否有某种增量 我尝试了INSERT IGNORE语句,但它替换了已有的数据 有什么建议吗 要以非1的自动增量值开始,请使用CREATE TABLE或ALTER TABLE设置该值,如下所示:如何使用MYSQL在新表中创建新ID,mysql,Mysql,我见过很多标题或兴趣相似但与我所寻找的不同的问题 我有一个表,其中已经有一些数据,有一个id列。我希望表中已有的几千行数据的id保持不变。我想从另一个表中插入不同的数据,该表还包括id(在这个集合中略多于92000行),我需要将这些id更改为其他一些不存在的id,以便不覆盖或替换已经存在的数据 这可能吗?插入时是否有某种增量 我尝试了INSERT IGNORE语句,但它替换了已有的数据 有什么建议吗 要以非1的自动增量值开始,请使用CREATE TABLE或ALTER TABLE设置该值,如下所
mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;
如果第一个表中的id是一个自动增量列,则可以忽略它
在表1第2栏、第3栏、第4栏中插入-省略id
选择第2列、第3列、第4列,…-id也被省略
来自表2
如果不是这样,并且假设它是一次性操作,您可以尝试以下方式分配新ID
INSERT INTO table1 (id, column2, column3, column4, ...)
SELECT t.max_id + s.id, s.column2, s.column3, s.column4, ...
FROM
(
SELECT @n := @n + 1 id, column1
FROM table2 CROSS JOIN (SELECT @n := 0) i
ORDER BY id
) s JOIN
(
SELECT MAX(id) max_id
FROM table1
) t
这里是演示请显示您的第一个表的定义模式您是否对ID使用自动递增?您的ID列具有主键?太棒了!您的第一块sql工作得非常好。非常感谢。