Field names and NEW

Поиск
Список
Период
Сортировка
От Tuukka Norri
Тема Field names and NEW
Дата
Msg-id C8F7A441-9DF5-48C8-812C-C537D2C461C2@iki.fi
обсуждение исходный текст
Ответы Re: Field names and NEW  (Martijn van Oosterhout <kleptog@svana.org>)
Список pgsql-general
Greetings to everyone on the list

I am attempting to write a system which would copy primary key values
to another table after insert. To achieve this, I wrote a trigger
function in Perl. I also wanted to make the function reusable, so the
fields included in the query are passed as function arguments. Here
is the code:

CREATE OR REPLACE FUNCTION ModifyInsert () RETURNS TRIGGER AS $$
     my $fieldnames = '';
     my $fieldvalues = '';
     my $mTablename = $_TD->{args}[1];

     for (my $i = 2; $i < $_TD->{argc}; $i++)
     {
         my $currentName = $_TD->{args}[$i];
         $fieldnames .= ", \"$currentName\"";
         $fieldvalues .= ", '$_TD->{new}{$currentName}'";
     }

     my $query = "INSERT INTO $mTablename (pgts_modification_type
$fieldnames) VALUES ('I' $fieldvalues)";
     spi_exec_query ($query);
     return;
$$ LANGUAGE PLPERL;

However, I would rather use PL/PgSQL, since the Perl interpreter
might not be installed by default. Is there a way to access the NEW
record without knowing the field names in advance?

--
Best regards,
Tuukka Norri

В списке pgsql-general по дате отправления:

Предыдущее
От: "Houssais Hugues"
Дата:
Сообщение: Unify distant Postgres databases
Следующее
От: "Fred"
Дата:
Сообщение: Syntax problem for a newbie