我的表 asf 有这个代码,列 price 和列 category:
CREATE OR REPLACE FUNCTION aft_update()
RETURNS trigger AS
$$
BEGIN
UPDATE asf SET price = new.price='300' WHERE category = 'pro';
RETURN NEW;
END;
$$
LANGUAGE 'plpgsql';
CREATE TRIGGER updt_log
AFTER UPDATE
ON asf
FOR EACH ROW
EXECUTE PROCEDURE aft_update();
但是由于某种原因,即使触发器成功运行,更新也不起作用!我想更新多行。
答案 0 :(得分:1)
为此,您根本不需要任何触发器或函数
<块引用>CREATE TABLE asf (id serial, price DECIMAL(10,2),category varchar(10))
<块引用>
INSERT INTO asf (price,category) VALUES (10.2,'pro'),(11.2,'pro')
<块引用>
UPDATE asf SET price = 300 where category = 'pro'
2 行受影响
<块引用> <块引用>SELECT * FROM asf
id | price | category -: | -----: | :------- 1 | 300.00 | pro 2 | 300.00 | pro
db<>fiddle here