SQL,如何从特定的起始号码ID中插入表

我需要从一个表插入一些行到另一个表,这里是两个表的结构:

  • ID(int)
  • courseID(int)
  • 课程(位)
  • 书签(varchar(100))
  • course_date(日期时间)
  • 后测(位)
  • post_attempts(int)
  • 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