比方說,我有一張表,category
,它有3列,id
,parent_id
和name
。如何遷移遞歸表?
我有幾個這樣的表,我想合併成一個。目前,他們的ID會發生衝突(DB中不唯一),所以我需要重新給他們加上ID。如果我讓id
爲auto_increment
我可以複製所有其他列就好了,但然後parent_id
將不再正確連接。有什麼神奇的方式可以讓parent_id
指向正確的新ID?
尋找類似
INSERT INTO newtable (parent_id, name) SELECT ???, name FROM oldtable
我想你可以添加一個old_id列,這樣你仍然可以擁有原始ID,並且可以運行連續更新表以修改所有'parent_id'以指向新的auto_inc標識。顯然你必須首先殺掉表中的任何外鍵需求,並在所有更改完成後重新創建它們。 – Patrick 2011-03-02 21:54:21
沒有魔法我想,你將不得不添加另一個包含old_id和new_id – rene 2011-03-02 21:54:40
@Patrick的表:我可能必須這樣做。 @rene:我認爲使用1個額外的列比整個額外的表更容易。 – mpen 2011-03-02 22:05:17