我试过了:
INSERT INTO event_log_tracker_table
SELECT * FROM event_tracker_table WHERE eventid = '560'
但是我收到了这个错误:
Error Code: 1136. Column count doesn't match value count at row 1
除了一件事之外,列完全相同......
我在eventlogid
中添加了另一列(event_log_tracker_table
)作为主键。如何从另一个表中插入一行并将其添加到新表中的主键?
以下是表格的结构。
event_log_tracker_table (24 columns)
-----------------------
eventlogid - PK
eventid - INT
//
// 22 other columns
//
event_tracker_table (23 columns)
-----------------------
eventid - PK
//
// 22 other columns
//
我试过这样做:
INSERT INTO event_log_tracker_table
SELECT null, * FROM event_tracker_table WHERE eventid = '560'
答案 0 :(得分:1)
正如SELECT
Syntax所述:
将不合格的
*
与选择列表中的其他项一起使用可能会产生解析错误。要避免此问题,请使用合格的tbl_name.*
参考SELECT AVG(score), t1.* FROM t1 ...
因此,您可以取代SELECT NULL, *
来限定通配符:
INSERT INTO event_log_tracker_table
SELECT NULL, event_tracker_table.*
FROM event_tracker_table
WHERE eventid = '560'