SQL,如何从特定的起始号码ID中插入表
我需要从一个表插入一些行到另一个表,这里是两个表的结构:
ID列是一个自动增量的主键,所以如果我使用INSERT INTO table1 SELECT * FROM table2
,sql会产生这个错误#1062 - 重复键'PRIMARY'的条目'1' 。
那么我可以省略ID列,但问题是新的ID是自动生成的。 我在另一个表中有ID引用,所以我的问题是:当我键入下面的命令时是否有一种方法来为ID指定一个START号码?
INSERT INTO table1(
course_id,
course,
bookmark,
course_date,
posttest,
post_attempts
)
SELECT
course_id,
course,
bookmark,
course_date,
posttest,
post_attempts
FROM table2
要增加新插入数据的ID
值,请执行以下操作:
INSERT INTO table1(
ID,
course_id,
course,
bookmark,
course_date,
posttest,
post_attempts
)
SELECT
ID + 1000 AS ID,
course_id,
course,
bookmark,
course_date,
posttest,
post_attempts
FROM table2
但是如果你想跳过一些起始值,你可以在选择时使用WHERE
子句:
...
FROM table2
WHERE ID > 10
你可以设置auto_increment起始值如下:
ALTER TABLE table1 AUTO_INCREMENT = 1;
欲了解更多信息,请点击此处
链接地址: http://www.djcxy.com/p/94293.html上一篇: SQL, how to INSERT INTO table from a specific start number ID
下一篇: SQL, how to insert all rows of a table into another one