我創建了觸發器和函數。錯誤觸發器。觸發無返回。 PostgreSQL
CREATE TRIGGER trigger_update_quantity AFTER INSERT ON orderitem
FOR EACH ROW EXECUTE PROCEDURE update_quantity();
CREATE OR REPLACE FUNCTION update_quantity() RETURNS TRIGGER AS $quantity_update$
DECLARE
flower INT;
BEGIN
flower = New.flower_num;
UPDATE product SET quantity = quantity - New.quantity
WHERE flower_num = flower;
END;
$quantity_update$
LANGUAGE plpgsql;
當我嘗試向表中插入一行時。我有以下錯誤。
INSERT INTO "public"."orderitem" ("order_num", "flower_num", "quantity", "total_price") VALUES (?, ?, ?, ?);
[2F005] ERROR: control reached end of trigger procedure without RETURN
Where: PL/pgSQL function update_quantity()
我可能會誤解,但我認爲觸發器函數應該返回他爲他的動作使用的值(這裏是INSERT)。所以在你的例子中,我會返回NEW值。 – Arkhena
我無法返回NEW。 給出一個返回的例子 – ImZ
你會在[documentation](https://www.postgresql.org/docs/9.6/static/plpgsql-trigger.html) – Arkhena