如何在MYSQL中将值插入自动标识列

VIn*_*ayK 10 mysql auto-increment mysql-workbench

我想在mysql innodb表Auto_Increment列中插入值.

我正在将旧表中的一些数据加载到具有标识的新表中,并且需要保留旧表中的现有值,因此我需要保留现有Id值,但保留列Auto_Increment中的新值.

在MS T-SQL中,我将启动我的insert查询脚本SET SET IDENTITY_INSERT MyTable ON并结束查询SET SET IDENTITY_INSERT MyTable OFF.

我怎样才能在MySQL中做同样的事情?

Joc*_*lyn 9

就像往常一样:

INSERT INTO my_table(auto_inc_field, other_field) VALUES(8547, 'some value');
Run Code Online (Sandbox Code Playgroud)

如果值来自另一个表,您可以使用:

INSERT INTO my_table(auto_inc_field, other_field)
SELECT auto_inc_field, other_field FROM other_table;
Run Code Online (Sandbox Code Playgroud)

  • 如果您导入数据,那么您将使用全新的id值,如果auto_inc_field中的整数为0或NULL,则会生成该值."违反外键约束xxx".这个答案值得被低估而不是问题...... (2认同)
  • 如果有人像我一样偶然发现此问题,并且您插入了带有ID的行。您可以使用'ALTER TABLE test AUTO_INCREMENT = 10'手动设置auto_inc_field-其中10是要用于插入行的下一个值。 (2认同)