Re: Borrar registro con FK

From: Jenaro Centeno Gómez <jcenteno(at)aldia(dot)com(dot)mx>
To: Javier Bermúdez Tito <javier_bt(at)hotmail(dot)com>
Cc: jsgarcia(at)seguridad(dot)unam(dot)mx, Ayuda PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Borrar registro con FK
Date: 2009-06-16 15:04:23
Message-ID: 4A37B477.8000909@aldia.com.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Javier Bermúdez Tito escribió:
> Bueno segun tu correo ese error que te sale, en algun momento lo tube
> cuando comence a implementar FK en mi base de datos, hasta donde
> entiendo es por la referencia que existe entre una tabla cabecera y
> detalle, uhh algo asi como; que no se puede eliminar un registro que
> tiene referencia en la tabla detalle o no puede existir un detalle sin
> una cabecera OJO esto es solo cuando estan definidos los FK en dichas
> tablas involucradas.
> Bueno la solución que le di es tan solo como eliminar en orden un
> registro osea primero tengo que eliminar el Detalle y luego la
> Cabecera asi no te mostrara ningun mensaje de error, una de las
> ventajas los FK es que ayudan a validar que no existan datos corruptos
> en tu base de datos.
>
>
> *.:: J @ v i e r ::.*
>
>
>
>
>
> > Date: Mon, 15 Jun 2009 18:47:44 -0500
> > From: jsgarcia(at)seguridad(dot)unam(dot)mx
> > To: pgsql-es-ayuda(at)postgresql(dot)org
> > Subject: [pgsql-es-ayuda] Borrar registro con FK
> >
> > Buenas tardes,
> >
> >
> > En un blog que tenemos, para mostrar el último artículo, obtiene datos
> > de diferentes tablas (tres para ser exactos).
> > Esas tres tablas están relacionadas entre sí. La cuestión es que
> > necesito eliminar un registro que hice de prueba. Tengo que ir
> > eliminando tabla por tabla. LO que no encuentro es cómo borrar para
> > que no me salga el error:
> >
> > ERROR: update or delete on table "tabla1" violates foreign key
> > constraint "$1" on table "tabla2"
> > DETAIL: Key (id)=(523) is still referenced from table "table2".
> >
> > Yo entiendo que que así como así no se puede pues ese es uno de los
> > objetivos de crear las FK. He investigado y al parecer se hace con ON
> > DELETE CASCADE....aunque no entiendo si en verdad es así o cómo se
> > utiliza.
> >
> >
> > Gracias¡¡¡¡
> >
> >
> >
> > ----------------------------------------------------------------
> > This message was sent using IMP, the Internet Messaging Program.
> >
>
> ------------------------------------------------------------------------
> Connect to the next generation of MSN Messenger Get it now!
> <http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline>
La opción que comentas es la correcta, con DELETE CASCADE sobre la tabla
principal que se encuentra referenciada mediante Foreign Keys por otras
tablas básicamente eliminarás el registro y todos sus registros
relacionados en las demás tablas.

--
-------------------------------------------------------------------------------------------
L.A. Jenaro Centeno Gómez

Coordinador Departamento de Tecnologías de la Información
Alimentos La Concordia, S.A. de C.V.
Tel. 01 474 741 9200
Ext. 9280
www.aldia.com.mx

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-06-16 15:31:38 Re: Backup
Previous Message Agustin Ignacio Genoves 2009-06-16 14:59:52 Re: Borrar registro con FK