PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como evitar a exclusão da primeira linha da tabela (PostgreSQL)?


Você estava certo ao pensar no sistema de regras. Aqui está um link para um exemplo que corresponde ao seu problema. É ainda mais simples que os gatilhos:
create rule protect_first_entry_update as
  on update to your_table
  where old.id = your_id
  do instead nothing;
create rule protect_first_entry_delete as
  on delete to your_table
  where old.id = your_id
  do instead nothing;

Algumas respostas perdem um ponto:também a atualização da linha protegida deve ser restrita. Caso contrário, pode-se primeiro atualizar a linha protegida de forma que ela não atenda mais ao critério de exclusão proibido e, em seguida, pode-se excluir a linha atualizada, pois ela não está mais protegida.