Mysql InnoDB Ограничения внешнего ключа

Провел эксперимент. С foreign key в MySQL. Ранее я думал, что в MySQL нет ограничений на внешние ключи, но выяснилось, что есть. Для использования ограничений внешнего ключа используется такой синтаксис:

[CONSTRAINT symbol] FOREIGN KEY (index_col_name, ...)

REFERENCES table_name (index_col_name, ...)

[ON DELETE CASCADE | ON DELETE SET NULL]

В конечном итоге все выглядит так:

create table table1 (id int not null auto_increment, name char(20), primary key (id)) type=innodb;
create table table2 (id int auto_increment primary key, table1_id, foreign key (table1_id) references table1(id) on delete cascade) type=innodb;

При отсутствии или удалении кортежа из table1 соответствующий кортеж из таблицы table2 так же будет удален.
Важная часть выражения — «on delete cascade». кортеж будет УДАЛЕН. Если заменить на «on delete set null» то, указатель будет установлен в null.

Комментарии

Популярные сообщения из этого блога

Siege Up! Editor (beta)

STM32F4 и программный выход в DFU

Git и Yandex.Disk