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
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 |