Sobes.tech
Back to questions
Junior — Middle
65

Можете пояснить, каким образом реализуется операция каскадного удаления и обновления в SQL?

Answer from AI

sobes.tech AI

Каскадное удаление и обновление в SQL реализуются с помощью ограничений внешнего ключа (FOREIGN KEY) с опциями ON DELETE CASCADE и ON UPDATE CASCADE.

Это означает, что при удалении или обновлении записи в родительской таблице автоматически будут удалены или обновлены связанные записи в дочерних таблицах.

Пример создания таблиц с каскадным удалением и обновлением:

CREATE TABLE parent (
    id INT PRIMARY KEY,
    name VARCHAR(100)
);

CREATE TABLE child (
    id INT PRIMARY KEY,
    parent_id INT,
    description VARCHAR(100),
    FOREIGN KEY (parent_id) REFERENCES parent(id)
        ON DELETE CASCADE
        ON UPDATE CASCADE
);

В этом примере:

  • Если удалить запись из parent, все связанные записи из child с таким parent_id тоже удалятся.
  • Если изменить id в parent, соответствующие значения parent_id в child обновятся автоматически.

Это удобно для поддержания целостности данных без необходимости писать дополнительный код.