sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo evitar la eliminación de la primera fila en la tabla (PostgreSQL)?

Tenías razón al pensar en el sistema de reglas. Aquí hay un enlace a un ejemplo que coincide con su problema. Es incluso más simple que los disparadores:

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;

Algunas respuestas pierden un punto:también se debe restringir la actualización de la fila protegida. De lo contrario, primero se puede actualizar la fila protegida para que ya no cumpla con el criterio de eliminación prohibida, y luego se puede eliminar la fila actualizada porque ya no está protegida.