Я пытаюсь разобрать MySQL docs . Они могут быть понятнее. Кажется, они говорят, что есть пять возможностей: SET NULL, NO ACTION, RESTRICT, CASCADE и SET DEFAULT.
NO ACTION и RESTRICT делают одно и то же (предотвращают любые изменения БД, которые нарушают FK), и эта вещь используется по умолчанию, поэтому, если вы пропустите предложение ON DELETE, вы скажете NO ACTION (или RESTRICT - то же самое).
SET NULL разрешает удаление родительской строки, устанавливает FK в NULL.
CASCADE удаляет дочернюю строку.
SET DEFAULT никогда не должен использоваться.
Это более или менее правильно?