sql修改主键,这是其他表中的fk

时间:2014-04-01 23:40:01

标签: sql

我在表中有一个String主键,我想将其修改为int auto increment, 问题是这个主键也是另一个表中的外键,并且与其主键连接,并且它们都是另一个表中的外键。有没有人知道正确的方法和顺序来执行此修改,因为外键在自动递增主键时检索正确的值?谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

此问题的答案取决于您的数据库引擎。

如果您正在使用oracle,您希望将约束修改为" deferred" - 这将使事务中的更改违反约束,该约束将在提交时进行验证(它将不允许提交没有PK的FK,但它将允许您具有可以更新两者的事务,而不会任何问题)。

有些数据库在更新级联"对于约束,允许将PK上的更新级联到FK。