如何将没有主键的表复制到另一个表

use*_*456 5 mysql sql

我想将一个表复制到另一个表.

例如,我有桌子Data(ID, time, serial_number...),我有Temp_data(ID, time, serial_number...)

如何复制没有主键(ID)的所有项目.

我正在使用MYSQL,我试过了 INSERT INTO Data SELECT * FROM Temp_data;

问题在于主键.这两个表都有值,我需要复制除ID以外的所有内容.

egg*_*yal 7

而不是SELECT *拼出你想要的列:

INSERT INTO Data (time, serial_number...)
  SELECT (time, serial_number...) FROM Temp_data;
Run Code Online (Sandbox Code Playgroud)

  • 我不知道它是如何与MySQL,但在PostgreSQL中,当您使用字段周围的括号进行选择时,您将收到错误.没有:`INSERT INTO Data(time,serial_number ...)SELECT time,serial_number ... FROM Temp_data;` (5认同)

Moy*_*ari 6

您必须在查询中定义列名称,否则它将插入所有列

INSERT INTO tbl2 (column1, column2)
    SELECT tbl1.col1, tbl1.col2 FROM tbl1
Run Code Online (Sandbox Code Playgroud)