删除SQL语句中的外码依赖的元组问题:在外键表建立的时候需要定义外键允许“级联删除。否则删除父表数据的时候,会报外键无法删除的错误。
级联删除:
当我们没有对键加级联删除的时候,删除主键表中的数据(外键表有引用的数据)时,会报错,不能删除,必须先把相关联的外键数据删除了,才能删除主键表的数据,但如果新建外键的时候设置了级联删除,那么当我们删除主键表的数据时,数据库就会自动帮我们把相关联的外键表数据删除掉。
级联更新:
我们修改主键表中和外键表进行关联的字段(一般是主键表的主键,mssql好像必须是主键),如果我们没有设置级联更新,那么这个时候会提示不能更新,因为外键表还有数据正在和这条数据进行关联,但是如果设置了级联更新,那么外键表的数据会自动帮我们更新。
增加级联的SQL代码:
1 2 3 4 |
ALTER TABLE [name] ADD CONSTRAINT [name] FOREIGN KEY([key name]) REFERENCES [table name]([key name]) ON DELETE CASCADE |