使用MySQL外键的四个条件


  本文标签: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等几种类型  。