sql(七)外键
1.语法
ALTER TABLE tb1
ADD FOREIGN KEY (col1)
REFERENCES tb2(col2)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
把tb1表中col1列设定为外键,并与tb2表中col2列做关联。
ON DELETE、ON UPDATE表示事件在删除时和更新时触发限制,可设参数:
值 | 含义 | 备注 |
---|---|---|
restrict | 当在父表(即外键的来源表)中删除/更新记录时,会检查该记录是否有对应的外键,如果有则不允许删除/更新 | 默认值 |
no action | 与restrict含义一致 | |
cascade | 当在父表(即外键的来源表)中删除/更新记录时,会检查该记录是否有对应的外键,如果有则也删除/更新外键在子表(即包含外键的表)中的记录 | |
set null | 当在父表(即外键的来源表)中删除/更新记录时,会检查该记录是否有对应的外键,如果有则该外键值设为null |