我有 2 張表“銷售”和“產品”。表“產品”有一個 id 列和一個 amount 列。我想創建一個觸發器,當我在“銷售”中插入新的銷售時,它會從“產品”中的“金額”中洗掉 1。我該怎么做?
我的觸發功能:
CREATE OR REPLACE FUNCTION public.sell()
RETURNS trigger
LANGUAGE 'plpgsql'
VOLATILE
COST 100
AS $BODY$
BEGIN
NEW."amount" := product.amount - 1;
RETURN NEW;
END
$BODY$;
uj5u.com熱心網友回復:
這里是檔案的鏈接。
CREATE OR REPLACE TRIGGER update_product_on_selling AFTER INSERT ON sellings EXECUTE public.sell();
這里是檔案的摘錄
CREATE [ OR REPLACE ] [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD OF } { event [ OR ... ] }
ON table_name
[ FROM referenced_table_name ]
[ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ]
[ REFERENCING { { OLD | NEW } TABLE [ AS ] transition_relation_name } [ ... ] ]
[ FOR [ EACH ] { ROW | STATEMENT } ]
[ WHEN ( condition ) ]
EXECUTE { FUNCTION | PROCEDURE } function_name ( arguments )
where event can be one of:
INSERT
UPDATE [ OF column_name [, ... ] ]
DELETE
TRUNCATE
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/419558.html
標籤:
下一篇:銷售資料查詢的SQL周數為負
