假设我有一个表category
,其中包含3列,id
,parent_id
和name
。
我有几个像这样的表,我想将它们合并为一个。目前,他们的ID会发生冲突(在数据库之间不是唯一的)所以我需要重新识别它们。如果我id
auto_increment
我可以复制所有其他列,但parent_id
将无法正常链接。是否有一些神奇的方法可以让parent_id
指向正确的新ID?
寻找类似
的内容INSERT INTO newtable (parent_id, name) SELECT ???, name FROM oldtable
答案 0 :(得分:1)
怎么样
SELECT newid FROM newtable nt WHERE oldtablename = row.oldtablename and nt.oldid = row.parent_id
)答案 1 :(得分:0)
我想你可以添加一个old_id列,这样你仍然可以拥有原始id,并且可以对表进行连续更新,以修改所有parent_id以指向新的auto_inc id。您显然必须首先杀死表中的任何外键要求,并在完成所有更改后重新构建它们 - Patrick