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