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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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

Browse pgsql-es-ayuda by date

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