Я создал внешний ключ с помощью NaviCat (приложения MySQL), но как только я его создаю, он исчезает из списка внешних ключей и добавляется новый индекс. Означает ли это, что что-то пошло не так или это нормально?
Я пытался использовать information_schema Как проверить, является ли столбец уже внешним ключом? , но это привело к Unknown table 'REFERENTIAL_CONSTRAINTS' in information_schema. Возможно ли, что запрос для MsSQL и отличается от MySQL?
Unknown table 'REFERENTIAL_CONSTRAINTS' in information_schema
Таблица, которую вы, вероятно, создаете внешним ключом, - MyISAM. Перейдите в представление «Дизайн таблицы» и перейдите на вкладку «Параметры», чтобы изменить таблицу Engine на InnoDB
Вы можете изменить все свои таблицы на InnoDB, следуя инструкциям на http://kevin.vanzonneveld.net/techblog/article/convert_all_tables_to_innodb_in_one_go/
Добавьте default-storage-engine = innodb в раздел [mysqld] вашего файла конфигурации MySQL (обычно my.cnf) из http://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)
надеюсь, что это поможет!