为什么触发器不工作在Postgresql



我想更新" noofdays ";列,使用下面的触发器。但它不工作,我已经附加了触发器代码和表结构下面

CREATE OR REPLACE FUNCTION update_days() RETURNS TRIGGER AS $$
BEGIN
new."noofdays":=1;
RETURN new;
END; 
$$ LANGUAGE plpgsql;
CREATE TRIGGER calc_days before UPDATE ON bookentry FOR EACH STATEMENT EXECUTE PROCEDURE update_days();
bookid     | integer                     |           |          |
loginid    | integer                     |           |          |
borrowtime | timestamp without time zone |           | not null | now()
returntime | timestamp without time zone |           |          |
noofdays   | integer                     |           |          |

您需要一个行级触发器:

CREATE TRIGGER calc_days 
before UPDATE ON bookentry 
FOR EACH ROW  --<< this
EXECUTE PROCEDURE update_days();

您应该触发一个行级触发器:

CREATE TRIGGER calc_days 
before UPDATE ON bookentry 
FOR EACH ROW  --<< this
EXECUTE PROCEDURE update_days();

最新更新