mysql - 如何检查是否创建了外键

标签 mysql foreign-keys navicat

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

我试过使用 information_schema How to check if a column is already a foreign key?但这导致了 Information_schema 中的未知表 'REFERENTIAL_CONSTRAINTS'。有没有可能查询是针对 MsSQL 而与 MySQL 不同的?

最佳答案

  1. 您可能正在创建外键的表是 MyISAM。转到表设计 View 并转到选项选项卡将表引擎更改为 InnoDB

  2. 您可以按照 http://kevin.vanzonneveld.net/techblog/article/convert_all_tables_to_innodb_in_one_go/ 中的步骤将所有表更改为 InnoDB。

  3. http://dev.mysql.com/doc/refman/5.5/en/innodb-default-se.html 的 MySQL 配置文件(通常是 my.cnf)的 [mysqld] 部分添加 default-storage-engine=innodb

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

关于mysql - 如何检查是否创建了外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9564387/

相关文章:

forms - OneToMany relation_id 返回 Null

postgresql - 在 Navicat 结果窗口中查看列中的整个文本

SQL:连接 3 个表,还需要将第 3 个表连接到自身

javascript - node.js:将mysql(npm)池输出到html或jade

mysql 字段索引

php - 使用 php 和 mysql 存储和检索多维数组

mysql - 存储/构建 mysql 世界国家、州、地区、城市的最佳方式......?

java - 获取FK异常涉及的特定列

linux - 在 Ubuntu 14.04 LTS 上安装 Navicat

mysql - 如何在 VB.net 中使用多个结果