Field names and NEW
От | Tuukka Norri |
---|---|
Тема | Field names and NEW |
Дата | |
Msg-id | C8F7A441-9DF5-48C8-812C-C537D2C461C2@iki.fi обсуждение исходный текст |
Ответы |
Re: Field names and NEW
|
Список | 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 по дате отправления: