Триггер даты для pgAdmin, написанный на C

У нас установлен postgres 8 в Linux, и я копирую данные и триггеры из нашей версии Windows в эту новую. Однако plpgsql не установлен по умолчанию, поэтому копирование моего источника триггера не удается. У меня есть только C или внутренние языки на выбор; если не просить администратора базы данных установить plpgsql, может ли кто-нибудь помочь мне преобразовать это:

CREATE OR REPLACE FUNCTION "datestampTrigger"()

RETURNS "trigger" AS
'BEGIN
-- check for datecreated
IF NEW.datecreated IS NULL THEN
    NEW.datecreated := ''now'';
END IF;
NEW.datelastmodified := ''now'';
RETURN NEW;
END;'
  LANGUAGE plpgsql VOLATILE;

person justacoder    schedule 25.03.2011    source источник
comment
Вам нужно попросить администратора баз данных установить его и посмотреть, что они скажут. Побеспокойтесь о работе, как только стена будет возведена, которую вам нужно обойти.   -  person Kuberchaun    schedule 25.03.2011


Ответы (1)


В большинстве систем Linux, с которыми я сталкивался, plpgsql фактически установлен в системе, но не включен в шаблон базы данных. Выполнение следующего «активирует» plpgsql в вашей базе данных.

CREATE LANGUAGE plpgsql;
person Eelke    schedule 25.03.2011
comment
Вы должны быть пользователем суперпользователя, чтобы выполнить эту команду с успехом. - person Kuberchaun; 25.03.2011
comment
Да, так что я должен позволить dba сделать это в любом случае. Спасибо. - person justacoder; 25.03.2011
comment
Владельцы баз данных могут сделать это, если plpgsql является надежным языком, которым он обычно является. - person Eelke; 25.03.2011