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字段的默認長度