比方说,我有一张表,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