Всем привет!
Не могу найти и разобраться в том как именно работает ссылочная целостность на примере ON DELETE CASCADE в MySQL.
Есть родительская таблица:
CREATE TABLE ReportDate
(
report_id int unsigned auto_increment NOT NULL,
report_date smalldatetime NOT NULL DEFAULT CURRENT_SMALLDATETIME(),
PRIMARY KEY (report_id)
);
Есть дочерняя таблица:
CREATE TABLE Report
(
report_id int unsigned NOT NULL,
user_id int unsigned NOT NULL,
PRIMARY KEY (report_id),
FOREING KEY (report_id) REFERENCES ReportDate(report_id)
ON DELETE CASCADE,
FOREING KEY (user_id) REFERENCES UserLogin(user_id)
);
В случае удаления строки данных по конкретному report_id что произойдет в дочерних таблицах? Будут удалены данные в одной только "ячейке" report_id (с обращением в NULL, тогда у этого аргумента должно быть допустимо NULL; тогда соответственно в чем разница с SET NULL)? Или будет удалена вся строка данных в дочерней таблице, связанная с удаленным конкретным report_id (т.е. и конкретный report_id и соответствующий ему user_id)?
PS: не судите строго за качество вопроса и кода - учусь в процессе...