嗨这是我在pgAdmin3 postgresql上的第一个触发器功能,我试过并放弃了,我想添加一个触发器来填充item_sold表,如果一个项目已售出。我正在为etrading网站做评估。
CREATE TRIGGER trPopulateItemSold()
AFTER UPDATE ON tradebay.item FOR EACH ROW
RETURN trigger AS $populate$
BEGIN
INSERT INTO item_sold (transaction_id, quantity, buyer_id, item_id) VALUES (transaction_id, NEW.quantity, buyer_id, NEW.item_id);
END;
LANGUAGE plpgsql;
SQL错误:
ERROR: syntax error at or near "("
LINE 1: CREATE TRIGGER trPopulateItemSold()
^
答案 0 :(得分:2)
您的CREATE TRIGGER
语法无效。你误解了它是如何工作的。
触发创建分两步完成:
有关详细信息和示例,请参阅PostgreSQL手册:
你似乎试图将两者混合成一个步骤。那样不行。你需要:
CREATE OR REPLACE FUNCTION .... RETURNS trigger AS $$
$$;
CREATE TRIGGER ...;