先决条件 – MS SQL Server 中的外键
只有当列是父表的一部分时,才能在子表中插入外键。外键允许我们执行其他称为引用操作的操作。在父表的情况下,引用操作允许更新或删除行。如果用户更新/删除了父表中的列,则子表中的列也会自动更新/删除。
句法 :
foreign key(foreign-key_constraint)
references parent_table(parentkey_column)
ON Delete Action
考虑来自大学数据库的两个表 – Student(父表)和 Marks(子表)。如果用户想要删除列,则必须按如下所示完成:
表 –学生
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 |
这也会从整个父表和子表中删除行。还有其他允许的操作——无操作、级联、设置为空、设置默认值。
- 在删除无操作时 –
它引发错误并回滚父表上的删除操作。 - 在删除级联 –
级联操作从父表和子表中删除所有行。 - 在删除集空 –
仅当外键可以为空时,父表和子表中的行才设置为空。 - 在删除设置默认值 –
仅当外键具有默认定义时,如果删除相应的父表行,子表行才会设置为默认值。