码迷,mamicode.com
首页 > 数据库 > 详细

MySQL外键约束On Delete和On Update的使用

时间:2019-10-20 13:02:14      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:来源   update   意思   允许   更新   mysql外键   mysq   sql   delete   

On Delete和On Update都有Restrict,No Action, Cascade,Set Null属性。现在分别对他们的属性含义做个解释。

 

  • ON DELETE

restrict(约束):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。

no action意思同restrict.即如果存在从数据,不允许删除主数据。

cascade(级联)当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包含外键的表)中的记录。

set null当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)

 

  • ON UPDATE

restrict(约束):当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新。

no action意思同restrict.

cascade(级联)当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则也更新外键在子表(即包含外键的表)中的记录。

set null当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)。

注:NO ACTION和RESTRICT的区别:只有在及个别的情况下会导致区别,前者是在其他约束的动作之后执行,后者具有最高的优先权执行。

MySQL外键约束On Delete和On Update的使用

标签:来源   update   意思   允许   更新   mysql外键   mysq   sql   delete   

原文地址:https://www.cnblogs.com/yijiahao/p/11707120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!