mysql外键约束解释说明

来源:互联网 发布:软件自动升级程序 编辑:程序博客网 时间:2024/05/17 08:14

假如有两张表

t1 和 t2 

t1:userid,name

t2:id,userid(外键,参照的为t1的userid)


默认属性:RESTRICT

一、插入

对t1而言(被参照的表)是没有任何影响的

对t2 而言,t2 的userid那一列的值一定要存在于t1的userid 那一栏中,不然插入不进去


二、删除(更新)


对t2 而言,设置这四个值是没有任何影响的,都可以直接删除一条记录,并且删除后对t1表示没有任何影响的

对t1而言:

RESTRICT:删除t1 的记录会不允许,如果t2中有值参考了此列

No ACTION删除t1 的记录会不允许,如果t2中有值参考了此列

CASCADE: 可以删除t1 的值,但是删除的时候如果t2中有一列参考了t1要删除的列,那么会将t2中的这一栏或者几栏全部删除(我删除,参考我的也要全部删除)


SET NULL:可以删除t1此列的值,但是如果t2中有一栏参考了t1要删除的值,那么会将t2中这一栏或者几栏的参考的值设为null,但是并不会删除此栏(我删除,参考我的都那一个值设为null)