10.5.4 - DELETE- Apagando Rastros com Precisão

Agente, chegamos à última operação do nosso ciclo CRUD: DELETE. Já aprendemos a inserir (INSERT), consultar (SELECT) e atualizar (UPDATE) registros no Supabase. Agora, vamos dominar a arte de remover dados com o comando DELETE.

Pense no DELETE como a ferramenta oficial de remoção: uma espécie de trituradora de documentos do QG. Seu papel é eliminar linhas inteiras de uma tabela — por isso, exige atenção redobrada.


🎯 Objetivo: Eliminar um Registro Específico

A estrutura do DELETE é simples, mas seu uso deve ser extremamente criterioso. Assim como o UPDATE, ele depende do uso correto da cláusula WHERE para garantir que apenas os dados desejados sejam removidos.

🔍 Estrutura do Comando

DELETE FROM nome_da_tabela
WHERE condicao_de_filtro;

📌 Explicação:

  • DELETE FROM nome_da_tabela: Indica de qual tabela o dado será removido.

  • WHERE condicao_de_filtro: Define quais linhas serão excluídas. Essa cláusula é essencial para evitar exclusões indesejadas. Sempre que possível, utilize a Chave Primária (PK) para garantir precisão.

  • ;: Finaliza o comando SQL.


🚨 Atenção: Nunca Execute DELETE Sem WHERE!

Executar um DELETE sem a cláusula WHERE é como ativar uma autodestruição da tabela.

-- EXTREMAMENTE PERIGOSO!
DELETE FROM usuarios;

Esse comando apaga todas as linhas da tabela usuariossem possibilidade de recuperação, caso você não tenha backup.

🛡️ Regra de Ouro:

Sempre utilize WHERE no DELETE, exceto se for intencional apagar todos os registros da tabela (e mesmo assim, tenha um backup!).


🧪 Exemplo 1: Removendo um Post Específico

Vamos supor que você precise excluir um post antigo com ID a1b2c3d4...:

DELETE FROM posts
WHERE id = 'a1b2c3d4-e5f6-7890-1234-567890abcdef';

Aqui, apenas a linha com o id informado será removida da tabela posts.


🧪 Exemplo 2: Removendo um Usuário (Com Cautela)

Agora, imagine que você precise excluir o usuário Carlos Pereira:

DELETE FROM usuarios
WHERE id = 'a1b2c3d4-98fe-76dc-54ba-3210fedcba98';

Porém, se esse usuário estiver relacionado a outras tabelas (como posts ou pedidos), o banco pode impedir a exclusão, dependendo das restrições de integridade referencial.

Comportamentos Possíveis das Foreign Keys (FKs):

  • RESTRICT ou NO ACTION: Impedem a exclusão se houver registros relacionados.

  • CASCADE: Exclui automaticamente os registros relacionados.

  • SET NULL: Define o valor da FK como NULL nos registros relacionados.

  • SET DEFAULT: Substitui o valor da FK pelo valor padrão da coluna.

📌 A depender da configuração, apagar um usuário pode desencadear ações automáticas em outras tabelas — tenha certeza das consequências antes de prosseguir.


🧪 Exemplo 3: Apagando Vários Registros com Critério

Para excluir todos os posts com menos de 5 curtidas:

DELETE FROM posts
WHERE numero_likes < 5;

O comando irá excluir todas as linhas que atendem à condição especificada.


🧭 Usando a Interface do Supabase

Também é possível apagar registros diretamente pela interface gráfica:

  1. Acesse o Table Editor.

  2. Escolha a tabela desejada.

  3. Localize e selecione a linha.

  4. Clique no ícone de lixeira (🗑️).

  5. Leia com atenção a mensagem de confirmação e confirme a ação.

Ideal para exclusões pontuais, com uma camada extra de segurança.


✅ Conclusão: Missão CRUD Completa!

Parabéns, agente! Agora você domina todas as operações fundamentais do SQL no Supabase:

  • Criar (INSERT)

  • Recuperar (SELECT)

  • Update/Atualizar (UPDATE)

  • Deletar (DELETE)

Essas ações são a base de qualquer aplicação que manipule dados.

No próximo capítulo, vamos aprender um dos recursos mais poderosos do SQL: o JOIN — perfeito para cruzar informações entre tabelas conectadas. Prepare-se para ampliar sua visão e conectar os pontos da investigação.

Last updated