Postgresql
postgresql 中的觸發器函式中缺少表的 FROM 子句條目
我為表“product”創建了一個審計觸發器,應該將數據插入到“log_product”中。
CREATE FUNCTION public.insert_log_product() RETURNS trigger LANGUAGE 'plpgsql' COST 100 VOLATILE NOT LEAKPROOF ROWS 0 AS $BODY$ BEGIN IF (TG_OP = 'UPDATE') THEN INSERT INTO log_table( operation, product_type_new, product_type_old, product_name_new, product_name_old, vendor_id, available_quantity_unit_new, available_quantity_unit_old, delivery_time_in_days_new, delivery_time_in_days_old, change_date ) VALUES( 'UPDATE', new.product_type, old.product_type, new.product_name, old.product.name, new.vendor_id, old.vendor_id new.available_quantity_unity, old.available_quantity_unity, new.delivery_time_in_days, old.delivery_time_in_days, now() ); END IF; RETURN NULL; END; $BODY$;
但我收到一條錯誤消息:
org.postgresql.util.PSQLException: ERROR: missing FROM-clause entry for table "product"
該函式是使用 PGadmin 4.2 創建的。
CREATE TRIGGER insert_log_product_trigger AFTER INSERT OR DELETE OR UPDATE ON public.table FOR EACH ROW EXECUTE PROCEDURE public.insert_log_product();
我們的審計表的要求是將每一列分開,新舊。
您正在嘗試將 42 個值插入 41 列。檢查 vendor_legal_id。