триггеры и триггерные функции

есть таблица ЗАКАЗЫ
CREATE TABLE ORDERS (
id SERIAL NOT NULL
, price INT
, discount INT
, id_customer INT
, order_date DATE
, is_pay BOOLEAN
, delivery_date DATE
, PRIMARY KEY (id)
);

И есть триггер на добавление и обновление в эту таблицу.


CREATE TRIGGER trigger2
AFTER INSERT OR UPDATE
ON orders
FOR EACH ROW
EXECUTE PROCEDURE func1();

В триггерной функции ORDERS.price устанавливается в 300.

CREATE OR REPLACE FUNCTION func1()
RETURNS trigger AS
$BODY$BEGIN
NEW.price=300;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION func1() OWNER TO postgres;

При попытке добавить или обновить строк в таблице ORDERS - ошибка.

В чем дело?

ВложениеРазмер
ошибка.jpg13.37 kb

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Уже все) нужно было сделать

Уже все) нужно было сделать return NEW и все.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023