Как создать триггерные функции в PostgresSQL для нескольких схем и таблиц.
Мне нужна одна функция для нескольких таблиц и схем.
Я пытаюсь использовать приведенный ниже код.
Функция:
CREATE OR REPLACE FUNCTION public.update_modifiedUser(pSchemaName text, pTableName text)
RETURNS trigger AS
$BODY$
DECLARE
vUserid numeric;
BEGIN
select t.userid into vUserid from public.user_login_details t where inet (t.systemid) = inet_client_addr() order by t.id desc limit 1;
UPDATE pSchemaName||.||pTableName SET modified_user = vUserid ,modified_date = now() WHERE ID = NEW.ID;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Триггер:
CREATE TRIGGER trg_modUser_aerial
BEFORE UPDATE OF geom
ON sandiego.aerial
FOR EACH ROW
EXECUTE PROCEDURE public.update_modifiedUser('sandiego','aerial');
при выполнении функции Я получаю эту ошибку:
ОШИБКА: триггерфункции не могут иметь объявленные аргументы
СОВЕТ: Вместо аргументов триггера можно получить доступ через TG_NARGS и TG_ARGV.
CONTEXT: компиляция функции PL / pgSQL "update_modifieduser" рядом со строкой 1
сообщите мне о любых изменениях в моей функции