delete cascate no MySQL

MySQL

19/06/2023

Como uso o delete cascate no MySQL?
Rhene

Rhene

Curtidas 0

Respostas

Arthur Heinrich

Arthur Heinrich

19/06/2023

O DELETE CASCADE é uma feature que permite você excluir, simultaneamente, os registros de uma tabela e de todas as tabelas que fazem referência à tabela do delete.

Digamos que você tenha uma tabela chamada A (principal) e uma tabela B (secundária), onde B possui uma coluna que faz referência à tabela A, através de uma constraint.

Em uma situação normal, se você tenta excluir dados da tabela A, o banco precisa garantir que não hajam dados na tabela B que façam referência ao registro na tabela A que vai ser excluído.

Caso existam registros na tabela B, o delete é abortado por violar a constraint de foreign key. Quem faz isso é a constraint.

A propriedade "ON DELETE CASCADE" pode ser adicionada à constraint, de forma que, ao verificar a constraint em um delete, os registros encontrados em B sejam excluídos também.

-- Constraint normal, que não permite o delete na tabela A sem excluir antes os registros correspondentes de B:
alter table B add constraint A_B_FK FOREIGN KEY (IDT_A) REFERENCES A (IDT_A)

-- Constraint com cascade, que permite o delete na tabela A sem excluir antes os registros correspondentes de B:
alter table B add constraint A_B_FK FOREIGN KEY (IDT_A) REFERENCES A (IDT_A) ON DELETE CASCADE

Veja alguns exemplos em:

https://www.javatpoint.com/mysql-on-delete-cascade#:~:text=ON%20DELETE%20CASCADE%20clause%20in,related%20to%20the%20foreign%20key.
GOSTEI 0
POSTAR