внешние ключи с "ON DELETE CASCADE" - PullRequest
0 голосов
/ 12 сентября 2011

Кто-нибудь знает, как добавить внешние ключи с "ON DELETE CASCADE" для таблицы типа "InnoDB"

1 Ответ

1 голос
/ 12 сентября 2011

Во-первых, убедитесь, что обе таблицы InnoDB. Даже если оператор create указывает InnoDB, если этот движок не установлен, MySQL вместо этого будет использовать MyISAM. Поэтому проверьте, действительно ли они InnoDB.

Затем убедитесь, что оба столбца имеют одинаковый тип (например, если один из них - int (11), а другой - int (11) без знака, вы не можете создать внешний ключ). Удостоверьтесь, что столбец, на который вы ссылаетесь (идентификатор в таблице бизнес в вашем случае), имеет уникальный индекс (MySQL позволит использовать любой индексированный столбец, но лучше всего использовать уникальный индекс). Если это первичный ключ, он уже имеет уникальный индекс.

Затем запустите оператор в соответствии с документацией и указанием других пользователей:

ALTER TABLE yourtable ADD FOREIGN KEY xyzkey (field) REFERENCES foreigntable (foreignfield) ON DELETE CASCADE;

Если вы не можете добавить внешний ключ, вы можете создать триггер вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...