2014-01-11 32 views
0

我有一個建立在Wordpress 3.7.1之上的網站。使用插件我做一個DB備份,但後來當我試圖導入DB在開發服務器我得到這個錯誤:在WP數據庫中重複PRIMARY_KEY

ERROR 1062 (23000) at line 9480: Duplicate entry '2280' for key 'PRIMARY'

這怎麼可能?我的意思是如何在數據庫副本可以存在?我如何解決這個問題?

+0

您準備使用哪些工具進行備份和導入? – Palec

回答

1

該問題似乎與您創建開發服務器的方式相同。請按照下列步驟操作:

  1. 登錄到您當地的「phpMyAdmin」以導出您的私人CMS數據庫。
  2. 用新的域地址替換每個舊的URL地址。
  3. 爲您的開發服務器創建一個新數據庫
  4. 登錄到「phpMyAdmin」以查找您的新數據庫。在「導入」標籤下,選擇剛下載的文件,更改並保存。
+0

正如我在以前的帖子評論中所說的,這是我遵循的導出/導入腳本的相同過程,我只是不知道如果'id'是'PRIMARY KEY'並且'AUTOINCREMENT'可以重複,這是非常罕見,其他建議 – Reynier

+0

['AUTO_INCREMENT'](http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html)僅由0和NULL觸發。 ['PRIMARY KEY'](http://dev.mysql.com/doc/refman/5.0/en/create-table.html)根據定義是唯一的,而且它是'NOT NULL'。看文檔。 – Palec

0

你的備份是怎樣的?我懷疑它是一個INSERT s的序列。當您的開發服務器已經有一箇舊的轉儲導入時,舊值和新值將會發生衝突。您應該刪除舊的數據庫並從頭開始重新創建它。

+0

這就是我在第一次嘗試時所做的事情,只是創建了空的數據庫並且之後的第二步是導入SQL腳本但沒有成功 – Reynier

+0

@Reynier請提供表的模式。 'SHOW CREATE TABLE table_name;'主鍵確實強制唯一值。只有將重複值插入這樣的列的方法是繞過密鑰檢查,例如,通過['ALTER TABLE table_name DISABLE KEYS'](http://dev.mysql.com/doc/refman/5.0/en/alter-table.html)(編輯:不起作用)或[也許其他方式](http ://stackoverflow.com/q/8210608/2157640)。另請參閱本[在MySQL郵件列表中發佈](http://lists.mysql.com/mysql/195015)。可能在您的生產數據庫中查找值「2280」,其備份可以更清楚地瞭解問題。 – Palec