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

parámetro para utilizar con new

From: "Juan Romero" <jgromero(at)gmail(dot)com>
To: "Lista Postgres ES" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: parámetro para utilizar con new
Date: 2008-10-23 20:52:36
Message-ID: 3c7410400810231352j6e6a1169nc695173f4351dd7f@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Hola lista,

Estaba escribiendo un trigger y me encontré con la necesidad de buscar
en los catálogos para tras buscar el nombre de un campo de la tabla
tomar ese valor y usarlo en otra. Algo parecido a:

CREATE OR REPLACE FUNCTION triggerprueba()
	RETURNS trigger AS
$BODY$
DECLARE
	pk text;
BEGIN
	SELECT substring(pg_catalog.pg_get_indexdef(i.indexrelid, 0, true)
		from position('btree (' IN pg_catalog.pg_get_indexdef(i.indexrelid,
0, true)) + 7
			for position(')' IN pg_catalog.pg_get_indexdef(i.indexrelid, 0, true)) -
				(position('btree (' IN pg_catalog.pg_get_indexdef(i.indexrelid, 0,
true)) + 7))
	FROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i
	WHERE c.oid = TG_RELID AND c.oid = i.indrelid AND i.indexrelid = c2.oid
	AND i.indisprimary = true INTO pk;

--Quiero hacer algo como lo siguiente, pero evidentemente no se puede

	INSERT INTO t3 (tabla, t_campo) VALUES (TG_TABLE_NAME, NEW.pk);
	RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;


Me pareció haber visto algo parecido hace algún tiempo en la lista,
pero no lo encontré..... Por lo que entiendo esto no se podría hacer
de este modo, (al menos no con plpgsql) pero quisiera estar seguro.


Cordial Saludo,


Juan Gabriel Romero Silva

Responses

pgsql-es-ayuda by date

Next:From: Jaime CasanovaDate: 2008-10-23 20:57:29
Subject: Re: parámetro para utilizar con new
Previous:From: Edwin QuijadaDate: 2008-10-23 19:31:29
Subject: RE: Retornando un select ...diferencias de Postgres y MSSQL

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