如何检查是否创建了外键

时间:2012-03-05 09:35:26

标签: mysql foreign-keys navicat

我已经使用NaviCat(一个MySQL应用程序)创建了一个外键,但是当我创建它时,它会从外键列表中消失并添加一个新的索引。这是否意味着出现问题或是否正常发生?

我尝试过使用information_schema How to check if a column is already a foreign key?,但结果是Unknown table 'REFERENTIAL_CONSTRAINTS' in information_schema。查询是否可能用于MsSQL并且与MySQL不同?

2 个答案:

答案 0 :(得分:4)

  1. 您可能正在创建外键的表是MyISAM。转到“表设计”视图并转到“选项”选项卡,将表Engine更改为InnoDB

  2. 您可以按照http://kevin.vanzonneveld.net/techblog/article/convert_all_tables_to_innodb_in_one_go/

  3. 中的步骤将所有表格更改为InnoDB
  4. http://dev.mysql.com/doc/refman/5.5/en/innodb-default-se.html

  5. 的MySQL配置文件[通常是my.cnf]的[mysqld]部分添加default-storage-engine = innodb

    毕竟没有任何缺陷来自MySQL 5.5 InnoDB是默认的存储引擎。

答案 1 :(得分:2)

执行

SHOW CREATE TABLE myTable;

然后检查

ENGINE = InnoDB

如果是这样,您可以使用外键。检查它是否包含这样的内容:

FOREIGN KEY (customer_id)  REFERENCES customer(id)
希望有所帮助!