PostgreSQL Cascade delete

PostgreSQL Cascade delete

“Ao trabalhar com os bancos de dados PostGresql, você encontrará instâncias em que deve soltar registros de uma tabela. Antes de executar uma consulta de exclusão, é importante garantir que a tabela não deixe nenhum relacionamento incompleto entre tabelas.

No PostgreSQL, podemos usar o recurso de exclusão em cascata para realizar isso. Esse recurso permite que uma operação de exclusão remova os registros especificados e quaisquer chaves estrangeiras que os referenciem.

Usando este artigo, revisaremos como realizar uma Cascade Exclete no PostgreSQL.”

PostgreSQL Cascade delete

O recurso de exclusão em cascata é muito simples. Ele garante que a exclusão de todos os registros de pais remova os registros de crianças também. Para evitar a remoção acidental de registros infantis, você pode definir as restrições de chave estrangeira na tabela pai para NULL.

Vamos ver como podemos conseguir isso.

Comece configurando um banco de dados de amostra. No seu utilitário PSQL, execute o comando:

1
2
3
4
5
6
7
8
Crie banco de dados "CASCADE_DELETE_DB;"
COM
Proprietário = PostGres
Coding = 'utf8'
LC_COLLATE = 'C'
LC_CTYPE = 'C'
TABLESPACE = PG_DEFAULT
Limite de conexão = -1;

Uma vez criado, mude para esse banco de dados executando o comando:

1
\ c cascade_delete_db;

Em seguida, vamos criar a tabela pai executando a consulta:

1
2
3
4
5
6
7
Crie usuários de tabela (
Id Id Serial Primary Key,
Full_name Varchar (100),
Email Varchar (255),
Country Varchar (50),
departamento_foreign_key int não nulo
);

Em seguida, podemos criar a tabela infantil como:

1
2
3
4
Criar departamento de mesa (
Chave primária serial user_id,
Departamento Varchar (50)
);

Em seguida, precisamos adicionar uma restrição de chave estrangeira à tabela pai, conforme mostrado no comando abaixo:

1
2
ALTER TABLE Usuários Adicionar chave estrangeira (departamento_foreign_key)
Departamento de Referências (User_id) em Cascade Delete;

Agora podemos inserir alguns dados de amostra nas tabelas, como mostrado:

1
2
3
4
5
6
7
8
Inserir valores de departamento (departamento)
('DESENVOLVIMENTO DE JOGOS'),
('Dev-OPs'),
('Back-end-dev');
Inserir em usuários (Full_name, email, país, departamento_foreign_key) valores
('Alley K', '[email protected] ',' nós ', 1),
('Kaspa V', '[email protected] ',' CA ', 2),
('Dev.W ',' [email protected] ',' af ', 3);

Podemos então consultar as mesas como:

1
Selecione * dos usuários;

Isso deve devolver a tabela:

Da mesa do departamento, podemos correr:

1
Selecione * do departamento;

A tabela resultante:

Depois que todos os dados da amostra estiverem prontos, podemos executar uma exclusão em cascata, conforme mostrado na consulta abaixo:

1
Excluir do departamento onde departamento = 'Dev-OPs';

Na declaração acima, usamos a consulta Normal Delete para remover um registro em que o departamento é igual a “Dev-OPS.”Desde que definimos o Cascade Exclete, podemos verificar a tabela de usuários para verificar o usuário com o departamento_foreign_key de 2 é descartado.

1
Selecione * dos usuários;

Podemos ver que apenas dois registros estão na tabela de usuários, apesar de nós remover o registro da tabela de departamentos.

Parabéns, você aprendeu a realizar uma exclusão em cascata no PostgreSQL.

Terminação

Este tutorial ensinou a você como vincular duas tabelas usando uma chave estrangeira e definir um recurso de exclusão em cascata.

Obrigado pela leitura!!