我用NaviCat(一个MySQL应用程序)创建了一个外键,但创建它的那一刻,它就从外键列表中消失了,并添加了一个新的索引。这是否意味着出了什么问题,或者发生这种情况正常?
我尝试过使用information_schema如何检查列是否已经是外键?但产生CCD_ 1。是否可能是针对MsSQL的查询,而与MySQL不同?
-
您可能正在创建外键的表是MyISAM。转到表设计视图并转到选项选项卡,将表引擎更改为InnoDB
-
您可以按照中的步骤将所有表更改为InnoDBhttp://kevin.vanzonneveld.net/techblog/article/convert_all_tables_to_innodb_in_one_go/
-
在MySQL配置文件(通常是my.cnf)的[mysqld]部分添加默认存储引擎=innodbhttp://dev.mysql.com/doc/refman/5.5/en/innodb-default-se.html
MySQL 5.5没有任何缺陷,InnoDB是默认的存储引擎。
执行
SHOW CREATE TABLE myTable;
然后检查
ENGINE = InnoDB
如果这是真的,您可以使用外键。检查它是否包含这样的内容:
FOREIGN KEY (customer_id) REFERENCES customer(id)
希望能有所帮助!