2012-03-07 63 views
1

我正在尋找從一個WordPress站點追加評論表到另一個。用戶是不同的。當我將網站B的評論導入到A時,我遇到了重複密鑰問題; comment_id已被採納。解決在mysql導入重複的主鍵

那麼我該如何解決這個問題,並附上一個簡單的.sql文件的表?我是否需要獲取用戶信息,生成新用戶,檢查B站點上的註釋,抽取內容和postID,然後返回站點A併爲新創建的用戶重新創建註釋!?

真是頭疼!謝謝。

回答

0

如果你唯一的問題是重複的關鍵問題,去你的SQL文件結束後 ENGINE=MyISAM 並使其 ENGINE=MyISAM AutoIncrement=a nubmer above the last id in the new database

或最後一個ID

查詢數據庫中的再添加一個並在新插入查詢中使用它。

例1:

CREATE TABLE IF NOT EXISTS `movies` (
    `id` int(255) NOT NULL AUTO_INCREMENT, 
    `title` varchar(255) NOT NULL, 
    `year` int(4) NOT NULL, 
    `size` varchar(255) NOT NULL, 
    `added` date NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `title` (`title`,`year`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; 

的刀片從我的轉儲:

INSERT INTO `movies` (`title`, `year`, `size`, `added`) VALUES 
('[REC] 2', 0, '716688', '2011-09-23'), 
('5 Days of War', 0, '1435406', '2012-01-09'), 
('[REC]', 0, '1353420800', '2011-11-06'); 

查看如何我不包括在我的包括PRIMARY KEY (id),但它仍然會覈對我UNIQUE KEY,看看標題存在。只是一個小小的演示,希望有所幫助。如果您的表已經存在於新數據庫中,那麼只需跳到插入內容並且不包含主鍵,並且它會在新插入時自動設置爲下一個可用值。

+0

因此,通過第一種方法,比如舊數據庫以主鍵5結束,並且您說ENGINE = MyISAM AutoIncrement = 6,新數據庫中的其餘條目將以6,7,8等方式導入? – AlxVallejo 2012-03-08 15:52:09

+0

正確的,當你設置自動增量,它從指定的數字開始,其中,如果你沒有包含它,它會自動從1開始,並向前移動,那是什麼原因導致你的錯誤,如果你想從轉儲更新。只是不包括在轉儲的插入primary_key,它應該像一個魅力。我將編輯並從我的一個數據庫發佈演示。 – rackemup420 2012-03-09 14:05:01