CREATE TABLE problem in plpgsql trigger

Поиск
Список
Период
Сортировка
От James Croft
Тема CREATE TABLE problem in plpgsql trigger
Дата
Msg-id d6hkf8$207t$1@news.hub.org
обсуждение исходный текст
Ответы Re: CREATE TABLE problem in plpgsql trigger  (Stephan Szabo <sszabo@megazone.bigpanda.com>)
Список pgsql-general
Hi all,

I'm trying to create a trigger function for a few tables that will store
old versions of rows prior to any update on them. Part of the function
needs to creates other tables (the table to store these snapshots in).

When this trigger runs I get the and error of 'syntax error at or near
"$1" at character 15' which is the CREATE TABLE line.

<snip>
DECLARE
     rec RECORD;
     snapshottable TEXT;
     originaltable TEXT;
BEGIN
SELECT INTO rec count(*) AS num FROM pg_tables WHERE schemaname =
''table_snapshots'' AND tablename = TG_RELNAME;
     IF rec.num < 1 THEN
         snapshottable := ''table_snapshots.'' || TG_RELNAME;
         originaltable := TG_RELNAME;
         CREATE TABLE snapshottable (LIKE originaltable);
         ALTER TABLE snapshottable ADD COLUMN snapshottime date;
         ALTER TABLE snapshottable ALTER COLUMN snapshottime SET DEFAULT
CURRENT_TIMESTAMP;
     END IF;
</snip>


The problems seems to be with the table_name arg being a variable and
not a literal but can't see how to fix this.

If anyone knows what's going on here or has any pointers it would be
appreciated.

Thanks,
James

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

Предыдущее
От: palanivel.kumaran@scandent.com
Дата:
Сообщение: need clarification
Следующее
От: "Jan Sunavec"
Дата:
Сообщение: Re: Count and Results together