Ответ
Нет, по умолчанию удаление запрещено. При попытке удалить запись из родительской таблицы, на которую существуют ссылки, СУБД выбросит ошибку нарушения внешнего ключа (например, IntegrityConstraintViolationException).
Поведение управляется правилом ON DELETE:
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id)
REFERENCES customers(id)
ON DELETE CASCADE -- Определяет действие при удалении
);
Основные варианты ON DELETE:
RESTRICT/NO ACTION(по умолчанию) — Запрещает удаление родительской записи, если существуют зависимые дочерние записи.CASCADE— Автоматически удаляет все связанные дочерние записи. Опасен, может привести к каскадному удалению большого объема данных.SET NULL— Устанавливает значение внешнего ключа в дочерней таблице вNULL(поле должно быть nullable).SET DEFAULT— Устанавливает значение внешнего ключа в значение по умолчанию.