отличя версий 7.4 и 8.0?
От | Zet |
---|---|
Тема | отличя версий 7.4 и 8.0? |
Дата | |
Msg-id | 19512555875.20051120145500@on.kg обсуждение исходный текст |
Список | pgsql-ru-general |
Приветствую Дома установлена версия 8.0 для windows На сервере, где хостимся - 7.4.3 - linux fedore core 2 Есть таблица tablename, есть триггер BEFORE INSERT В триггерной функции идет обращение к другой функции передачей ей такого параметра, как new, т.е. новые введенные значения полей для обработки Примерно выглядет так PERFORM some_func(new); Функция описана CREATE FUNCTION some_func(tablename) ... я выделил часть кода функцию, т.к. там приличный кусок, который необходим при разных триггерах и при разных условиях в 8.0 это работает без проблем, но после установки на сервер, выдает ошибку ERROR: NEW used in query that is not in a rule CONTEXT: PL/pgSQL function ... это отличия версий ПГ? или в 7.4 я должен что-то декларировать дополнительно и как? --- затем попробовал кое-что: попробовал передавать не new, а создал type tablename_fields с полями с таблицы tablename, и заменил функцию на CREATE FUNCTION some_func(tablename_fields) ... f в declare объявил f tablename_fields%rowtype; и вызываю функцию f.field1 := new.field1; f.field2 := new.field2; ... PERFORM some_func(f); но теперь ошибка на сервере хостера ERROR: column "f" does not exist CONTEXT: PL/pgSQL function ... Подскажите, как передать функции параметры? Также буду благодарен за ссылку на раздел мануала, где это более конкретно описано С уважением, Zet.
В списке pgsql-ru-general по дате отправления: