外键声明是否可以由其等效的检查约束True或False替换



我想知道外键声明可以被其等价的检查约束所取代。。如果是,为什么?我试着用谷歌搜索,但找不到答案请给我忠告。。。

这取决于替换的含义。

在概念级别上,可以将外键约束大致视为一组有效值。而且,在概念级别上,您可以将等效的检查约束视为大致一组有效值。

如果这是all,您的意思是替换的,那么您可以用等效的检查约束替换外键约束。

但是,外键约束的有效值集可以使用SQLDML:SQL插入、更新、删除语句进行更改。等效检查约束的有效值集不能以这种方式更改。您必须使用SQL DDL来更改检查约束。

此外,不同的用户可能对外键约束的引用表具有不同的权限。有些可能只有插入权限,有些可能有插入和更新权限,等等。你不能用这种方式控制对检查约束的更改。允许更改检查约束的用户可以以任何方式更改它。

是的,您可以用check约束替换foreign key,但请记住使用枚举

最新更新