lo tenes repetido dos veces ese tipo de clausula... si falla y si te tira un error y no es el mismo publicalo
El día 29 de octubre de 2008 13:28, Gabriel Messner <[EMAIL PROTECTED]> escribió: > No funciona tal como comentas... > > El 29 de octubre de 2008 13:13, postgres Emanuel CALVO FRANCO > <[EMAIL PROTECTED]> escribió: >> >> probaste la sentencia como te la pase? si te fijas tiene un select >> iniciando la sentencia.... >> >> El día 29 de octubre de 2008 6:05, Gabriel Messner >> <[EMAIL PROTECTED]> escribió: >> > ¿podrias explicarte mejor a que te refieres a que está el FROM solito? >> > ¿Que >> > crees que debería acompañarlo? (para probarlo...). Gracias >> > >> > El 28 de octubre de 2008 20:05, postgres Emanuel CALVO FRANCO >> > <[EMAIL PROTECTED]> escribió: >> >> >> >> NEW.cod_pais = select paises.cod_pais >> >> FROM paises >> >> where (provincias.nombre_pais::text = paises.nombre_pais::text); >> >> >> >> no sera esto? esta el from solito.... >> >> >> >> El día 28 de octubre de 2008 15:40, Jenaro Centeno Gómez >> >> <[EMAIL PROTECTED]> escribió: >> >> > No me parece muy lógico lo que estás haciendo, no sería mejor que >> >> > crearas un fk de la tabla provincias en este caso, hacia la tabla >> >> > países, incluyendo solamente el campo identifiador del país en la >> >> > tabla >> >> > provincia ? >> >> > >> >> > O quizá no entendí bien, ¿ Existe algún motivo por el que necesites >> >> > repetir los datos de la tabla paises en la tabla provincias? >> >> > >> >> > Saludos. >> >> > >> >> > El mar, 28-10-2008 a las 18:26 +0100, Gabriel Messner escribió: >> >> >> 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 >> >> > >> >> >> >> >> >> >> >> -- >> >> Emanuel Calvo Franco >> >> Syscope Postgresql DBA >> >> BaPUG Member >> >> -- >> >> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te >> >> lo >> >> agradecerán >> > >> > >> >> >> >> -- >> Emanuel Calvo Franco >> Syscope Postgresql DBA >> BaPUG Member >> -- >> TIP 6: ¿Has buscado en los archivos de nuestra lista de correo? >> http://archives.postgresql.org/pgsql-es-ayuda > > -- Emanuel Calvo Franco Syscope Postgresql DBA BaPUG Member -- TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo