MySQL中的外键约束

1、约束的种类

2、外键约束的条件

3、修改数据表的存储引擎

    在my.ini中修改

4、验证几个小问题

扫描二维码关注公众号,回复: 3083044 查看本文章

验证1::数据表的存储引擎是否为INNODB:

建表

查看

验证2:外键列(pid)与参考列(id)数据类型不一是否报错

验证3:外键列(pid)与参考列(id)是否有符号位不同是否报错

验证4:外键列(pid)与参考列(id)数据类型、符号位全相同是否报错

验证5:父表的参考列是否有索引

由于父表在建表时指定了id列为主键,主键会自动创建索引

验证6:子表的外键列是否:会自动创建索引

验证7:父表参照列不指定主键是否会自动创建索引

不指定主键无法创建子表

经查阅资料,父表的参考列必须注定唯一性约束才能创建子表,主键是唯一性约束的一种

   简而言之:外键必须是父表的唯一性约束

验证8:父表的参考列是否会自动创建索引

这就验证了外键约束的条件4:参考列和外键列不存在索引都会主动创建索引

5、外键约束的参照操作

创建父表

创建子表

在父表中插入数据

在子表中插入数据

在父表中删除数据

此时子表中数据也被删除

更新操作也是

注意:

一般生产部定义物理的外键约束,只定义逻辑的外键约束。因为物理的外键约束只支持INNODB引擎,而不支持MyISAM引擎。

6、表级约束与列级约束

猜你喜欢

转载自blog.csdn.net/pengzonglu7292/article/details/82181261