首页 百科知识 引用完整性

引用完整性

时间:2022-10-11 百科知识 版权反馈
【摘要】:CREATE TABLE和ALTER TABLE语句的REFERENCES子句支持ON DELETE 和ON UPDATE子句:如果没有指定ON DELETE或ON UPDATE,则默认为NO ACTION。NO ACTION指定的行为与SQL Server的早期版本中发生的行为相同。指定如果试图更新某行中的键值,而该行含有由其他表的现有行中的外键所引用的键,则产生错误并回滚UPDATE。不能为任何具有timestamp列的外键和主键指定CASCADE。如果在目标表上也定义了级联引用操作,则对在那些表中更新的键值同样采取指定的级联操作。

7.3.3 引用完整性

●级联引用完整性约束

当用户试图删除或更新外键所指向的键时,执行级联引用完整性约束所定义的操作。

CREATE TABLE和ALTER TABLE语句的REFERENCES子句支持ON DELETE 和ON UPDATE子句:

[ON DELETE{CASCADE|NO ACTION}]

[ON UPDATE{CASCADE|NO ACTION}]

如果没有指定ON DELETE或ON UPDATE,则默认为NO ACTION。NO ACTION指定的行为与SQL Server的早期版本中发生的行为相同。

>ON DELETE NO ACTION

指定如果试图删除某行,而该行含有由其他表的现有行中的外键所引用的键,则产生错误并回滚DELETE。

>ON UPDATE NO ACTION

指定如果试图更新某行中的键值,而该行含有由其他表的现有行中的外键所引用的键,则产生错误并回滚UPDATE。

CASCADE允许在表间级联键值的删除或更新操作,这些表的外键关系可追溯到执行修改的表。不能为任何具有timestamp列的外键和主键指定CASCADE。

>ON DELETE CASCADE

指定如果试图删除某行,而该行含有由其他表的现有行中的外键所引用的键,则也将删除所有包含那些外键的行。如果在目标表上也定义了级联引用操作,则对从那些表中删除的行同样采取指定的级联操作。

>ON UPDATE CASCADE

指定如果试图更新某行中的键值,而该行的键值由其他表的现有行中的外键所引用,则所有外键值也将更新成为该键指定的新值。如果在目标表上也定义了级联引用操作,则对在那些表中更新的键值同样采取指定的级联操作。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈