mysql 外键、级联问题

一曲冷凌霜 提交于 2019-11-26 16:34:45

数据库问题:事务,外键,级联的作用。

外键的作用是两张表关联,保证数据的一致性和实现一些级联操作。保证数据的一致性和完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用表中列的值!可以使得两张表关联,保证数据一致性和实现一些级联操作。

外键默认作用2点:1.对子表(外间所在的表)的作用:子表在进行写操作的时候,如果外键字段在对应的附表中找不到对应的匹配,操作就会失败。

2.对父表的作用,对父表的主键字段进行删除和更改时,如果对应的主键在子表中被引用,操作就会失败。

外键的三种定制模式:

district:严格模式(默认)父表不能删除或者更新一个被子表引用的记录。

cascade:级联模式,父表操作后,子表关联的数据也跟着一起操作。

set null:置空模式,前提外键字段允许为null,父表操作后,子表对应字段被置空。

使用外键的前提:1、表存储引擎必须是innodb,否则创建外键无约束效果。外键的列举类型必须与父表主键类型完全一致。外键的名字不能重复。已经存在数据的字段被设置为外键,必须保证字段中的数据域父表关键数据对应起来。

创建外键:foreign key(id) references my_tab2(主键字段名);

alter table my_tab add [constraint 外键名 foreign key(外键字段名) reference mytable2(主键名)]

删除外键:alter table my_tab drop foreign key 外键名字。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!