MySQL外键约束On Delete、On Update各取值的含义 先看On Delete属性,可能取值如上图为:No Action, Cascade,Set Null, Restrict属性。 当取值为No Action或者Restrict时,则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。 当取值为Cascade时,则当在父表(即外键的来...
(1)restrict方式:同no action,都是立即检查外键约束; - - 限制,指的是如果子表引用父表的某个字段的值,那么不允许直接删除父表的该值。 (2)cascade方式:在父表上update/delete记录时,同步update/delete子表的匹配记录 ; On delete cascade从mysql3.23.50开始可用,on update cascade从mysql4.0.8开始可用 ; -...
(1)restrict方式:同no action,都是立即检查外键约束; - - 限制,指的是如果子表引用父表的某个字段的值,那么不允许直接删除父表的该值。 1. (2)cascade方式:在父表上update/delete记录时,同步update/delete子表的匹配记录 ; On delete cascade从mysql3.23.50开始可用,on update cascade从mysql4.0.8开始可用 ...
On Delete和On Update都有Restrict,No Action, Cascade,Set Null属性。现在分别对他们的属性含义做个解释。 ON DELETE restrict(约束):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。 no action:意思同restrict.即如果存在从数据,不允许删除主数据。 cascade(级联):...
在MySQL中,当我们执行级联删除与级联更新时,可能会执行On Delete Restrict和On Update Restrict语句,这两个语句中都可以有Restrict,No Action, Cascade,Set Null属性,我简单总结一下这些属性的含义。 比如有如下SQL语句: /*===*/ /* Table: address */ /*===*/ create table tb_address ( a_id int not ...
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 ...
CASCADE:父表delete、update的时候,子表会delete、update掉关联记录; SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null; RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录; ...
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}] 该语法可以在 CREATE TABLE 和 ALTER TABLE 时使用,如果不指定CONSTRAINT symbol,MYSQL会自动生成一个名字。 ON DELETE、ON UPDATE表示事件触发限制,可设参数: ① RESTRICT(限制外表中的外键改动,默认值) ...
如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 . Restrict方式 同noaction, 都是立即检查外键约束 . Set default方式 父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别 2.关于主表,外键,从表 一个人的身份唯一,但是可以干很多事,身份是主表,干的事实从表,从表里面...
ON DELETE CASCADE 和 ON DELETE RESTRICT 是冲突的,不能同时使用.ON UPDATE CASCADE 和 ON UPDATE ...