mysql 外键、级联问题
数据库问题:事务,外键,级联的作用。 外键的作用是两张表关联,保证数据的一致性和实现一些级联操作。保证数据的一致性和完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用表中列的值!可以使得两张表关联,保证数据一致性和实现一些级联操作。 外键默认作用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