Мне интересно об этом тестовом вопросе. Я сам подготовил этот пример и протестировал его, но я все еще чувствую неуверенность в ответе.
Со следующим:
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
)
Насколько я вижу, ответ:
а. Созданы две таблицы
Хотя есть также:
б. Если строка в таблице foo2 с foo_id из 2 удалена, то строка с id = 2 в таблице foo автоматически удаляется
d. Если строка с id = 2 в таблице foo удалена, все строки с foo_id = 2 в таблице foo2 удаляются
В моем примере я бы использовал синтаксис delete:
DELETE FROM foo WHERE id = 2;
DELETE FROM foo2 WHERE foo_id = 2;
По какой-то причине мне не удалось найти какую-либо связь между таблицами, хотя кажется, что она должна быть такой. Может быть, есть какой-то параметр MySQL или, возможно, ON DELETE CASCADE
не используется должным образом в запросах создания таблицы? Мне осталось интересно...