Подтвердить что ты не робот

Создание триггера postgres - ОШИБКА: язык не указан SQL: 42P13

Я новичок в запуске. Я пытаюсь создать триггер, следуя этой ссылке - http://www.postgresqltutorial.com/creating-first-trigger-postgresql/. Но это дает некоторую ошибку. Блок кода и ошибка приведены ниже:

кодовый блок →

    CREATE OR REPLACE FUNCTION log_last_name_changes()
  RETURNS trigger AS
$BODY$
BEGIN
 IF NEW.last_name <> OLD.last_name THEN
 INSERT INTO employee_audits(employee_id,last_name,changed_on)
 VALUES(OLD.id,OLD.last_name,now());
 END IF;

 RETURN NEW;
END;
$BODY$

И ошибка →

 ERROR: no language specified
SQL state: 42P13

Кто-нибудь может мне помочь?

4b9b3361

Ответ 1

Попробуйте так:

CREATE OR REPLACE FUNCTION log_last_name_changes()
RETURNS trigger AS
$BODY$
BEGIN
IF NEW.last_name <> OLD.last_name THEN
INSERT INTO employee_audits(employee_id,last_name,changed_on)
VALUES(OLD.id,OLD.last_name,now());
END IF;

RETURN NEW;
END;
$BODY$

LANGUAGE plpgsql VOLATILE -- Says the function is implemented in the plpgsql language; VOLATILE says the function has side effects.
COST 100; -- Estimated execution cost of the function.