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、表级约束与列级约束