2014-01-08 17 views
1

我嘗試這樣做:從一個表到另一個副本行有額外的主鍵

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 

列完全匹配,除了一件事是相同的。 ..

我在event_log_tracker_table中增加了一列(eventlogid)作爲主鍵。如何從另一個表中插入一行並將它添加到新表中的主鍵?

下面是表格的結構。

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' 
+4

'SELECT NU LL,event_tracker_table。* FROM ...'? – eggyal

+0

@eggyal工作,你能寫一個答案我會接受它! –

+0

[mysql \ * selection with prepended custom columns]的可能重複項(http://stackoverflow.com/questions/21002294/mysql-selection-with-prepended-custom-columns) –

回答

1

由於SELECT Syntax下記載:

  • Use of an unqualified * with other items in the select list may produce a parse error. To avoid this problem, use a qualified tbl_name.* reference

    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' 
相關問題