SQL,如何将表的所有行插入另一个表中

时间:2014-09-30 23:35:20

标签: mysql sql sql-server

好的,所以我厌倦了SQL,我总是要求帮助,让我来表明我的问题。 我有2个表,这里是两个结构:

  • ID (int)
  • courseID(int)
  • 当然(位)
  • 书签(varchar(100))
  • course_date(datetime)
  • posttest(bit)
  • post_attempts(int)

现在我需要将一个表的所有行移动到另一个表(不更新),只需要一个表包含两个表的所有行。 ID列是自动增量的主键,但是当我尝试使用INSERT INTO table1 SELECT * FROM table2时,sql会生成此错误#1062 - 键'PRIMARY'的重复条目'1'

2 个答案:

答案 0 :(得分:2)

如果table1ID上有身份,您应该只选择除ID

之外的所有列
INSERT INTO table1(
    course_id,
    course,
    bookmark,
    course_date,
    posttest,
    post_attempts
)
SELECT
    course_id,
    course,
    bookmark,
    course_date,
    posttest,
    post_attempts
FROM table2

答案 1 :(得分:0)

如果您不关心传输过的旧表中的ID,可以使用:

INSERT INTO newTable (courseID, course, bookmark, course_date, posttest, post_attempts)
SELECT courseID, course, bookmark, course_date, posttest, post_attempts
FROM oldTable;

这将传输除ID之外的所有列,这应解决问题。