Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: Mario SotoDate: 2004-06-01 23:28:28
Subject: Re: Problema con trigger
Previous:From: Jorge TinitanaDate: 2004-06-01 23:21:18
Subject: Necesito ayuda con found

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group