удалить первичный ключ также удаляет внешний ключ - PullRequest
0 голосов
/ 24 марта 2011

У меня есть две таблицы, с ПК ID. Если скажем, что я удаляю запись для ID = 1, я хочу, чтобы она автоматически удаляла FK ID в другой таблице. Другими словами, я хочу, чтобы он также удалил все записи с ID = 1 в другой таблице. Как я могу это сделать? Я связал отношение PK-FK, но когда я удаляю запись с идентификатором 1 в таблице PK, она не удаляет FK.

Ответы [ 2 ]

4 голосов
/ 24 марта 2011

Убедитесь, что вы используете движок InnoDB для обеих таблиц, и добавьте ограничение внешнего ключа , указывающее on delete cascade.SQL для создания таблицы должен выглядеть примерно так:

create table child_table (
    parent_id int references parent_table(id) on delete cascade
) engine 'innodb';

, где child_table и parent_table - имена ваших дочерних и родительских таблиц.

0 голосов
/ 04 апреля 2016

Вы должны определить ограничения внешнего ключа как ON DELETE CASCADE.

Примечание: вам нужно использовать механизм хранения InnoDB, он по умолчанию механизм хранения MyISAM не поддерживает отношение внешних ключей.

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