2012-09-19 53 views
2

我想將具有表名爲域的數據庫中的數據複製到另一個也具有名爲域的表的數據庫中。將數據從一個數據庫複製到同一個表中的另一個表

我已經嘗試過使用phpmyadmin,但它不會複製,也許是因爲Auto_increment值。它只是不會被複制到另一個database.table。

我想知道在這方面可以做些什麼?我也不想將第一個數據庫中的舊ID(auto_increment)值複製到另一個數據庫中。

phpmyadmin響應。

#1136 - Column count doesn't match value count at row 1 

這兩個結構在數據庫中都是一樣的。

我的查詢。

INSERT INTO `site1`.`domains` 
SELECT * FROM `site33`.`domains` 

^這很多是固定的。 現在來的auto_increment的問題,我得到:

#1062 - Duplicate entry '1' for key 'PRIMARY' 
+0

PHPMyAdmin肯定給了你一些反饋。也許最好是閱讀這條消息,而不是讓人猜測。 – GolezTrol

+0

#1136 - 第1行的列計數與值計數不匹配 –

+0

您使用什麼查詢..?你能否在你的問題中粘貼你的查詢..? – heretolearn

回答

1

您使用的是具有價值的數量不正確的插入語句,比如:

的表ba,並且c,這些都是所有無效:

INSERT INTO YourTable VALUES (1, 2); 

INSERT INTO YourTable(b, c) VALUES (1, 2, 3); 

INSERT INTO YourTable(a, b, c) VALUES (2, 3); 

列的列列表中的號碼必須在值列表中值的數量相匹配。

只能爲每個列指定一個值並按表中列的存在順序,纔可以省略列列表。雖然這是不好的做法。最好總是指定你需要的確切列。

+0

謝謝,但現在我即時獲取重複值問題.. –

+1

這可能是因爲你插入的值已經存在。這也可能是因爲您沒有明確複製的字段上有唯一的索引。在這種情況下,您的目標數據庫將填充NULL或默認值,如果該列設置爲唯一,將會失敗 – GolezTrol

+0

是的,問題在於此。我寧願不將auto_incremented值複製到另一個數據庫。 –

9

你可以做這樣的事情:

INSERT INTO database2.table1 (field2,field3) 
SELECT table2.field2,table2.field3 
FROM table2; 

注: 不包括是汽車增量的insert和select語句中的列。

Sql Fiddle example

+0

感謝您的幫助。 :) –

相關問題