先看On Delete属性,可能取值如上图为:No Action, Cascade,Set Null, Restrict属性。 当取值为No Action或者Restrict时,则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。 当取值为Cascade时,则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应...
ON UPDATE restrict(约束):当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新。 no action:意思同restrict. cascade(级联):当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则也更新外键在子表(即包含外键的表)中的记录。 set null:...
on update cascade on delete cascade ; 1. 2. 3. 在执行该语句之后,进入父表,删除第一行数据,再进入子表,可以看到外键在子表中的记录被删除: (5) 验证set null: alter table emp add constraint fk_number_emp foreign key (type) references number(id) on update set null on delete set null ; 1...
On delete cascade从mysql3.23.50开始可用,on update cascade从mysql4.0.8开始可用 ; -- 级联,删除/更新父表的某条记录,子表中引用该值的记录会自动被删除/更新。 1. 2. 3. (3)No action方式:如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 这个是ANSI SQL-92标准,从mysql4.0.8...
1 InnoDB支持5种方式, 分列如下cascade方式在父表上update/delete记录时,同步update/delete掉子表的匹配记录On delete cascade从mysql3.23.50开始可用; on update cascade从mysql4.0.8开始可用 2 set null方式在父表上update/delete记录时,将子表上匹配记录的列设为null要注意子表的外键列不能为not nullOn ...
user_id INT NOT NULL, role_id INT NOT NULL, PRIMARY KEY(user_id,role_id), FOREIGN KEY(user_id) REFERENCES users(user_id), FOREIGN KEY(role_id) REFERENCES roles(role_id) ); 53.2 使用ALTER TABLE语句定义MySQL PRIMARY KEY约束 如果某个表由于某些原因没有主键,则可以使用ALTER TABLE语句定义表...
CASCADE:自动更新或删除子表中的关联记录。 NO ACTION:阻止操作并抛出错误,如果子表中存在关联记录。 RESTRICT:与NO ACTION类似,阻止操作并抛出错误,如果子表中存在关联记录。 SET NULL:将子表中的外键字段设置为NULL,保留子表记录但解除与父表记录的关联。
on delete cascade: 删除主表中的数据时,从表中的数据随之删除 on update cascase: 更新主表中的数据时,从表中的数据随之更新 on delete set null: 删除主表中的数据时,从表中的数据置空 级联删除 create table emp( empno int promary key auto_increment, ename varchar(32) not null, deptno int, [...
. cascade方式 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 . set null方式 在父表上update/delete记录时,将子表上匹配记录的列设为null 要注意子表的外键列不能为not null . No action方式 如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 ...