【发布时间】:2015-09-22 11:18:20
【问题描述】:
我有两张如下表。
人表带主键,地址表带主键,外键带人表主键的id。
两个表都错过了介于 1、3、6 之间的一些行...... 一些行(4 和 5)已被删除。
现在我需要重新排列两个表中的主键,并且在更改主键后,外键也需要更改为新的主键。
请帮忙。
【问题讨论】:
-
跳过一些 id 值没有区别。没有(合理的)需要重新分配主键。它们一旦设置就不应更改。
-
你不应该重新排列主键。最好的解决方案是,在插入新数据时,添加遗漏的数字作为主键。
-
这是我想做的一个要求。这需要在具有外键的大型两个表中进行,因为主键列的数据类型(int)大小不够,现在我们也无法更改数据类型。数据在中间被删除,所以如果我们可以重新排列,那将是解决方案。