2011-06-06 88 views
0

我有一個特別奇怪的問題把數據放入我的生產服務器。我的測試服務器運行MySQL 5.1.41。我導出數據庫(通過mysqldump和PHPMyAdmin嘗試),然後嘗試導入到運行MySQL 5.0.92的生產服務器。導入MySQL 5.1時MySQL 5.1數據庫導出失敗

在其中一個表中,我收到一個錯誤「#1062 - 鍵1的重複項」1「。該表具有PRIMARY鍵和UNIQUE組合鍵。當我查看phpmyadmin錯誤的輸出時,我沒有看到任何重複項。

我已經嘗試過: - 使用「添加自動增量」選項導出 - 檢查排序規則是否相同。他們是。此外,問題的關鍵是數字。

所以,如果有人知道可能會導致錯誤,以及如何解決它 - 我將不勝感激。

回答

0

解決方法是在導入之前從列中刪除AUTO_INCREMENT屬性。儘管如此,仍然不明白爲什麼。這些指標實際上可以停留。然後AUTO_INCREMENT可以很容易地加回去。 Silver Light提議的混合物,但我猜想沒有一個答案是完全正確的。

0

嘗試從轉儲中的表中刪除索引,然後在導入所有數據時手動添加它。

+0

如果表中有重複項,他將無法手動添加索引。 – 2011-06-06 08:06:00

+0

那麼,應該沒有重複,因爲那樣我就無法使源數據庫工作,對吧?我試着刪除所有非主鍵 - 它不起作用。作爲下一個鏡頭,我將刪除主鍵。 – Aurimas 2011-06-06 08:26:58

+0

那麼,解決方案是在導入之前從列中刪除AUTO_INCREMENT屬性。儘管如此,仍然不明白爲什麼。這些指標實際上可以停留。然後AUTO_INCREMENT可以很容易地加回去。 Martin&Silver Light提出的混合物,但我想沒有一個答案是完全正確的。 – Aurimas 2011-06-06 11:32:12

0

如果在源數據庫中一切正常,我唯一能想到的是目標數據庫不會將適當的列設置爲AUTO_INCREMENT。

您是否嘗試過在目標數據庫中手動創建該表,並在導入源轉儲之前將問題列設置爲AUTO_INCREMENT?

+0

我還沒有嘗試過,但我看到在導入過程中創建的表具有AUTO_INCREMENT在主鍵上的設置,因爲它應該如此。無論如何,我會嘗試你的建議,我猜(在Silver Light之後)。 – Aurimas 2011-06-06 08:25:36