From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Cristóbal Sanfurgo <csanfurgo(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: borrar registros |
Date: | 2005-10-24 03:57:32 |
Message-ID: | 20051024035732.GB26226@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Cristóbal Sanfurgo escribió:
> Tienes 2 opciones, 1 es la que dice juanky aplicando un where para saber en
> todas las tablas donde se encuentra el registro que debes eliminar, debes
> tener conciencia que tienes que borrar todos los registros donde este dicha
> tupla, tendremos una inconsistencia de la bd si esta esta siendo nombrada en
> otra tabla, como por ejemplo borrar un vendedor, el cual hace ventas, si
> borramos al vendedor, existiran ventas hechas por alguien que no existe,
> esto creara inconsistencias graves,
Por supuesto, en una base de datos disen~ada por gente que piense esto
no pasara, puesto que las claves en las tablas estaran definidas como
llaves foraneas usando la clausula REFERENCES, por lo que el mismo
sistema te va a indicar que estas intentando eliminar un registro que
esta siendo referido desde otra parte, y te prohibira la accion.
(Ademas, puedes usar ON DELETE CASCADE para que el sistema borre
automaticamente todas las referencias a un registro, cuando borres ese
registro, si eso es lo que se desea).
En todo caso la idea del campo "activo/inactivo" es buena, si se desea
guardar el historial de registros.
--
Alvaro Herrera http://www.advogato.org/person/alvherre
"Endurecerse, pero jamás perder la ternura" (E. Guevara)
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Gonzalez | 2005-10-24 11:27:31 | Re: serial |
Previous Message | Alvaro Herrera | 2005-10-24 03:54:50 | Re: serial |