先决条件– MS SQL Server中的外键
只有在使用外键的情况下,列是父表的一部分,才能将其插入子表中。外键使我们能够执行称为引用动作的其他动作。引用操作允许在父表的情况下更新或删除行。如果用户已更新/删除了父表中的一列,则该列也将自动在子表中被更新/删除。
句法 :
foreign key(foreign-key_constraint)
references parent_table(parentkey_column)
ON Delete Action
考虑大学数据库中的两个表–学生(父母表)和分数(子表)。如果用户要删除一列,则必须如下所示:
表–学生
Name | Rollnumber | Course |
---|---|---|
Maya | 111 | CSE |
Riya | 112 | Mech |
表–标记
Name | Rollnumber | Marks |
---|---|---|
Maya | 111 | 7.8 |
Riya | 112 | 7.6 |
在表上执行删除操作的SQL查询是–
foreign key references Student(Name)
ON Delete Action
输出 –
表–学生
Name | Rollnumber | Course |
---|---|---|
– | 111 | CSE |
– | 112 | Mech |
表–标记
Name | Rollnumber | Marks |
---|---|---|
– | 111 | 7.8 |
– | 112 | 7.6 |
这也会从整个父表和子表中删除行。还有其他允许的操作-无操作,级联,设置为null,设置默认值。
- 关于删除无操作–
它将引发错误并回滚对父表的删除操作。 - 关于删除级联–
级联操作将从父表和子表中删除所有行。 - 在删除集为空时–
仅当外键可为空时,父表和子表中的行才设置为空。 - 在删除时设置默认值–
如果仅在外键具有默认定义的情况下删除相应的父表行,则将子表行设置为默认值。