使用MySQL外键的四个条件

MySQL外键保证了数据库的参照完整性,但是MySQL外键也不是所有版本都有的,而且使用MySQL外键也需要满足一定的条件。

MySQL只在v3.23.34版本以后才引入MySQL外键的,所以在这之前的版本是没有的。除此之外,还必须具备以下几个条件:

1) 在my.cnf配置文件中打开InnoDB引擎支持。
# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /var/db/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/db/mysql/
innodb_log_arch_dir = /var/db/mysql/

2) 相关联的表都必须采用InnoDB引擎。

3) 相关联的字段都必须建立索引。
MySQL v4.0版本以后,定义外键时会自动建立所以,所以在 v4.0 版本以前(含v4.0版本)必须手工定义索引。

4) 相关联的字段必须采用类似的数据类型,或者说可转换的数据类型,当然相同类型是***不过了。
比如父表的字段是TINYINT类型,则子表只能采用TINYINT、SMALLINT、INT、BIGINT等几种类型。
 

 

 

 

【编辑推荐】

MySQL外键和参照完整性的联系

带参数的MySql存储过程

mysql UPDATE语句的使用方法

mysql插入Clob字段的实例

常见MySql字段的默认长度

THE END