Re: Problema con trigger

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Mario Soto <mario_soto(at)venezolanadeavaluos(dot)com>
Cc: diego(at)adminsa(dot)com, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema con trigger
Date: 2004-06-01 23:21:40
Message-ID: 20040601232140.GA29114@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Tue, Jun 01, 2004 at 07:03:00PM -0400, Mario Soto wrote:
> Hola, asi esta definida la tabla detmodelo pero no funciona
>
> CREATE TABLE "public"."detmodelo" (
> "co_modelo" INTEGER NOT NULL,
> "co_campo" INTEGER NOT NULL,
> "nu_activo_fijo" VARCHAR NOT NULL,
> "va_campo" VARCHAR(255),
> "sq_serialcolumn" SERIAL,
> "id_usuario" VARCHAR(15) NOT NULL,
> CONSTRAINT "detmodelo_pkey" PRIMARY KEY("co_modelo", "co_campo",
> "nu_activo_fijo"),
> CONSTRAINT "detmodelo_sq_serialcolumn_key" UNIQUE("sq_serialcolumn"),
> CONSTRAINT "detmodelo_fk_modelo" FOREIGN KEY ("co_modelo", "co_campo")
> REFERENCES "public"."modelo"("co_modelo", "co_campo")
> ON DELETE CASCADE
> ON UPDATE NO ACTION
> NOT DEFERRABLE
> ) WITH OIDS;

Hola,

Las referencias foraneas funcionan en una sola direccion, es decir, si
borras de la tabla modelo se deberia borrar de detmodelo pero no
viceversa.

Si estas seguro de lo que estas haciendo, necesitaras definir la
llave como "DEFERRABLE INITIALLY DEFERRED", y definir una segunda llave
foranea en la otra tabla que apunte en sentido inverso. No se si eso
realmente funciona, o siquiera si puede hacerse. Obviamente no se puede
en CREATE TABLE, tienes que usar ALTER TABLE para hacerlo.

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Ciencias políticas es la ciencia de entender por qué
los políticos actúan como lo hacen" (netfunny.com)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario Soto 2004-06-01 23:28:28 Re: Problema con trigger
Previous Message Jorge Tinitana 2004-06-01 23:21:18 Necesito ayuda con found