From: | Jaime Casanova <jaime(at)2ndquadrant(dot)com> |
---|---|
To: | Milton Labanda <1000ton(dot)lab(at)gmail(dot)com> |
Cc: | POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>, Foros Postgre Ecuador <ecpug(at)postgresql(dot)org> |
Subject: | Re: Modificar clave primaria |
Date: | 2013-12-11 18:42:25 |
Message-ID: | CAJKUy5g469JqTcsAc11qzzdj--a_CP4paWHdQTPe97_Hnj5hKA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | ecpug pgsql-es-ayuda |
2013/12/11 Milton Labanda <1000ton(dot)lab(at)gmail(dot)com>:
> Hola amigos, espero haya sido un éxito el PgDay 2013.
Saludos,
Bastante bonito me parecio
> Que me aconsejan para modificar el valor de una clave primaria en un sistema
> que por error de diseño, le pusieron como clave primaria el numero de cédula
> en una tabla estudiante.
> Hay como desactivar temporalmente los constraint FK ? o alguna otra
> solución? que no sea el tener que crear otro registro y migrar los datos.
>
Si tus constraints fueron creados con la opcion DEFERRABLE (el
predeterminado es NOT DEFERRABLE asi que si no lo hiciste pasa al
siguiente parrafo) basta con abrir una transacción y ejecutar SET
CONSTRAINTS {ALL | nombre} DEFERRED; hacer los cambios que necesites y
asegurarte que antes del commit todo sea consistente.
(http://www.postgresql.org/docs/9.3/static/sql-set-constraints.html)
La otra alternativa es deshabilitar los triggers en los que estan
basados los constraints, los FK se implementan a traves de triggers
especiales pero puedes deshabilitarlos con: ALTER TABLE nombre DISABLE
TRIGGER {ALL | nombre}. Asegurate de rehabilitar los triggers una vez
que hiciste lo que quieres hacer.
La diferencia entre ambos es que el primero es por transacción, el
segundo afecta a todo el mundo. Es decir, nadie tendra habilitado los
FK
--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Phone: +593 4 5107566 Cell: +593 987171157
From | Date | Subject | |
---|---|---|---|
Next Message | Milton Labanda | 2013-12-11 20:40:25 | Re: Modificar clave primaria |
Previous Message | Lazaro Ruben Garcia Martinez | 2013-12-11 15:23:35 | Re: [pgsql-es-ayuda] Modificar clave primaria |
From | Date | Subject | |
---|---|---|---|
Next Message | Milton Labanda | 2013-12-11 20:40:25 | Re: Modificar clave primaria |
Previous Message | Lazaro Ruben Garcia Martinez | 2013-12-11 15:23:35 | Re: [pgsql-es-ayuda] Modificar clave primaria |