[Pgsql-ayuda] Como puedo quitar esta propiedad "unique not null" a un campo de mi tabla ?

Alvaro Herrera alvherre@dcc.uchile.cl
Tue, 1 Apr 2003 15:15:23 -0400


On Mon, Mar 31, 2003 at 09:24:16PM -0400, Alvaro Herrera Munoz wrote:
> On Mon, Mar 31, 2003 at 12:32:52PM -0600, Luis Mix wrote:
> 
> Para sacar el NOT NULL tienes que cambiar el atributo attnotnull de la
> tabla pg_attribute.

begin;
update pg_attribute set attnotnull=false where relid=(select oid from pg_class where
relname like 'tu-tabla') and relname like 'tu-columna';
(revisas que todo esta bien)
commit;

Ojo, que si no todo esta bien debes hacer rollback de inmediato...

> Para sacar el UNIQUE tienes que cambiar el indisunique de la tabla
> pg_index.  (o bien botar el indice)

begin;
update pg_index set indisunique=false where indrelid=a.oid and
indexrelid=b.oid and a.relname='tu-tabla' and b.relname='tu-indice' from
pg_class a, pg_class b;
(idem arriba)


Todo esto lo escribo de memoria sin probar, asi que verifica que es
correcto antes de hacer commit.

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Vivir y dejar de vivir son soluciones imaginarias.
La existencia está en otra parte" (Andre Breton)