[Pgsql-ayuda] modificac ión de constraints

Alvaro Herrera alvherre@dcc.uchile.cl
Wed, 24 Sep 2003 14:21:34 -0400


On Wed, Sep 24, 2003 at 09:50:13AM -0300, Pablo E. Siciliano wrote:

> Tengo que modificar un constraint de una tabla, y vi que en alter table hay
> la posibilidad de tirarla abajo y volver a crearla, pero no encontré forma
> de mofificarla directamente. ¿Alguien conoce alguna manera, o sabe
> positivamente que no se puede (Como yo me imagino que no se puede)?

Cual es el problema con botarla y recrearla?

BEGIN;
DROP CONSTRAINT ...
CREATE CONSTRAINT ...
COMMIT;

Dado que los DDL en Postgres son 'transaccionables', para todas las
transacciones concurrentes habra una de las restricciones activas, en
todo momento.

Oracle (y otros) no pueden hacer eso; por este motivo necesitan trucos
sucios como "modificar una restriccion" para asegurar no perder la
integridad en ningun momento.

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"In a specialized industrial society, it would be a disaster
to have kids running around loose." (Paul Graham)