外键约束级联删除语法:
ON DELETE CASCADE:如果父表(被引用的表)中的记录被删除,则子表()中对应的记录自动被删除
CASCADE:级联操作
级联删除不是直接对表用,而是对主键或外键使用
用法:
先创建一个school表
create table school(
schno CHAR(3) PRIMARY KEY ,
chname varchar(8)
)
创建student表 时 给schno属性增加外键约束级联删除
create table student(
stuno CHAR(11) primary key,
stuname VARCHAR(12),
stuage SMALLINT,
stusex CHAR(1) ,
schno CHAR(3) REFERENCES school(schno) ON DELETE CASCADE
)
创建student表 时 给schno属性增加外键约束级联删除并给外键命名
create table student(
stuno CHAR(11) primary key,
stuname VARCHAR(12),
stuage SMALLINT,
stusex CHAR(1) ,
schno CHAR(3) ,
CONSTRAINT stu FOREIGN key (schno) REFERENCES school(schno) ON DELETE CASCADE
)
创建student表 后 再给schno属性增加外键约束级联删除
ALTER TABLE student ADD CONSTRAINT FOREIGN KEY (schno)
REFERENCEs school(schno) ON DELETE CASCADE
外键的其他约束:
on update --主键表中被参考字段的值更新
on delete --主键表中被参考字段的值删除
它们后面可以着这四个
no action 表示 不做任何操作,
set null 表示在外键表中将相应字段设置为null
set default 表示设置为默认值
cascade 表示级联操作,如果主键表中被参考字段更新/删除,外键表也更新/删除。