trigger para actualización de datos con otra tabla

From: "Gabriel Messner" <gabmessner(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: trigger para actualización de datos con otra tabla
Date: 2008-10-28 17:26:13
Message-ID: 1708890c0810281026m4693ded7j808727348e759476@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Tengo dos tablas 'paises' y 'provincias' las dos con un campo común 'pais'

Necesito diseñar un trigger (lo pego abajo) que cuando inserte una nueva
tupla en la tabla 'provincias' cubra el campo 'pais' se cubra el código de
país con los datos contenidos en la tabla 'paises'.

El problema aparece cuando inserto desde el formulario un nuevo registro. Me
devuelve un mensaje de error: Query failed: ERROR: missing FROM-clause entry
for table "provincias".

Creo que no estoy definiendo bien la función. Cualquier ayuda será de
agradecer.

CREATE OR REPLACE FUNCTION update_provincias RETURNS trigger AS -- trigger
indica que el tipo de dato devuelto es un trigger.
$update_cdconc$
BEGIN
IF (TG_OP = 'INSERT') THEN

NEW.cod_pais = paises.cod_pais
FROM paises
where (provincias.nombre_pais::text = paises.nombre_pais::text);
RETURN NEW;

END IF;
IF (TG_OP = 'UPDATE') THEN
IF (OLD.nombre_pais != NEW.nombre_pais) THEN -- OLD,
NEW son parámetros de la función: no tocar

NEW.cod_pais = paises.cod_pais
FROM paises
where (provincias.nombre_pais::text = paises.nombre_pais::text);
RETURN NEW;
ELSE RETURN NEW;
END IF;
END IF;

END;
$update_provincias$ LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS update_provincias ON provincias;

CREATE TRIGGER update_provincias BEFORE INSERT OR UPDATE ON provincias --
aa_plans.fichasplan: tabla sobre la que se ejecuta el trigger
FOR EACH ROW EXECUTE PROCEDURE update_provincias();
--update_centroides_geom() es la función declarada arriba

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jenaro Centeno Gómez 2008-10-28 17:40:51 Re: trigger para actualización de datos con otra tabla
Previous Message Jaime Casanova 2008-10-28 17:08:57 Re: Integer con '' para carga masiva