我已经使用NaviCat(一个MySQL应用程序)创建了一个外键,但是当我创建它时,它会从外键列表中消失并添加一个新的索引。这是否意味着出现问题或是否正常发生?
我尝试过使用information_schema How to check if a column is already a foreign key?,但结果是Unknown table 'REFERENTIAL_CONSTRAINTS' in information_schema
。查询是否可能用于MsSQL并且与MySQL不同?
答案 0 :(得分:4)
您可能正在创建外键的表是MyISAM。转到“表设计”视图并转到“选项”选项卡,将表Engine更改为InnoDB
您可以按照http://kevin.vanzonneveld.net/techblog/article/convert_all_tables_to_innodb_in_one_go/
在http://dev.mysql.com/doc/refman/5.5/en/innodb-default-se.html
毕竟没有任何缺陷来自MySQL 5.5 InnoDB是默认的存储引擎。
答案 1 :(得分:2)
执行
SHOW CREATE TABLE myTable;
然后检查
ENGINE = InnoDB
如果是这样,您可以使用外键。检查它是否包含这样的内容:
FOREIGN KEY (customer_id) REFERENCES customer(id)
希望有所帮助!