SQL Exclua Cascade

SQL Exclua Cascade

O SQL On Exclete Cascade é uma restrição que permite que o SQL exclua linhas associadas a uma tabela pai específica quando a tabela pai é excluída.

Usando este artigo, discutiremos como implementar o Excluir sobre a restrição de Cascade no SQL.

Exemplo prático da Cascade SQL

Suponha que tenhamos duas tabelas contendo informações do desenvolvedor e as contribuições de outro desenvolvedor. O desenvolvedor tem várias contribuições.

Aqui, queremos criar um relacionamento em que todas as contribuições da outra tabela sejam removidas automaticamente se o desenvolvedor for removido da tabela.

Vamos começar criando a tabela dos desenvolvedores:

Crie desenvolvedores de tabela (
Chave primária de dev_id serial,
Full_name Varchar (100) não nulo,
dev_language varchar (255) não nulo
);

Em seguida, vamos criar uma tabela de contribuições como mostrado:

Crie a tabela Contribe (
Chave primária serial repo_id,
repo_name varchar (100) não nulo,
commit_id int não nulo,
dev_id inteiro não nulo,
Chave estrangeira (dev_id)
Referências desenvolvedores (dev_id)
Em excluir cascata
);

Esta tabela declara uma restrição de chave estrangeira que mantém uma restrição de exclusão em cascata e faz referência ao dev_id na tabela de desenvolvedores.

Vamos adicionar dados de amostra para testar como mostrado:

Insira nos desenvolvedores (Full_Name, dev_language)
Valores
('Romilly Roy Reeve', 'Python 3'),
('Anastasija Jimi Hirsch', 'C ++'),
('Marylène Nina Capella', 'Rust')

A tabela dos desenvolvedores deve ter dados de amostra como mostrado:

Selecione * dos desenvolvedores;

Adicione dados de amostra na tabela de contribuições, como mostrado:

Inserir no contrib (repo_name, commit_id, dev_id)
Valores
('Repo1', 464576, 1),
('Repo1', 445876, 2),
('Repo1', 466466, 3);

A tabela de contribuições deve conter dados como:

Selecione * FROM CONTRIB;

Para ilustrar como funciona a restrição de cascata de exclusão, vamos remover o desenvolvedor com o ID de 3.

Excluir dos desenvolvedores onde dev_id = 3;

Se você consultar a tabela de contribuições, você notará que o registro de dev_id 3 também foi descartado.

Selecione * FROM CONTRIB;

É assim que usá -los em Excluir restrições em cascata no SQL.

Obrigado pela leitura!!