MySQL на каскаде удаления. Тестовый Пример
Мне интересно об этом тестовом вопросе. Я сам подготовил пример и проверил его, но все еще не уверен в ответе.
Со следующим:
CREATE TABLE foo (
id INT PRIMARY KEY AUTO_INCREMENT,
name INT
)
CREATE TABLE foo2 (
id INT PRIMARY KEY AUTO_INCREMENT,
foo_id INT REFERENCES foo(id) ON DELETE CASCADE
)
Насколько я вижу, ответ:
a. Two tables are created
Хотя есть и:
b. If a row in table foo2, with a foo_id of 2 is deleted, then the row with id=2 in the table foo is automatically deleted
d.If a row with id = 2 in table foo is deleted, all rows with foo_id = 2 in table foo2 are deleted
В моем примере я бы использовал синтаксис удаления:
DELETE FROM foo WHERE id = 2;
DELETE FROM foo2 WHERE foo_id = 2;
По какой-то причине мне не удалось найти какую-либо связь между таблицами, хотя кажется, что она должна быть. Может быть, есть некоторые настройки MySQL или, возможно,ON DELETE CASCADE
неправильно используется в запросах на создание таблицы? Мне осталось интересно ...