PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment empêcher la suppression de la première ligne de la table (PostgreSQL) ?

Vous aviez raison de penser au système de règles. Voici un lien vers un exemple correspondant à votre problème. C'est encore plus simple que les déclencheurs :

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;

Certaines réponses manquent un point :la mise à jour de la ligne protégée doit également être restreinte. Sinon, on peut d'abord mettre à jour la ligne protégée de sorte qu'elle ne remplisse plus le critère de suppression interdite, puis on peut supprimer la ligne mise à jour car elle n'est plus protégée.