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 usuarios
— sem possibilidade de recuperação, caso você não tenha backup.
🛡️ Regra de Ouro:
Sempre utilize
WHERE
noDELETE
, 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
ouNO ACTION
: Impedem a exclusão se houver registros relacionados.CASCADE
: Exclui automaticamente os registros relacionados.SET NULL
: Define o valor da FK comoNULL
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:
Acesse o Table Editor.
Escolha a tabela desejada.
Localize e selecione a linha.
Clique no ícone de lixeira (🗑️).
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