2013/12/11 Milton Labanda <1000ton....@gmail.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 - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda