【发布时间】:2011-12-19 05:04:59
【问题描述】:
我在 PL/pgSQL 中为 PostgreSQL 编写了一个简单的触发器,但它没有按我的计划工作。我有两个问题:
- 是否有 PostgreSQL 函数的调试器?
- 我哪里错了?我需要在这里查看
idprod。
CREATE OR REPLACE FUNCTION add_towh() RETURNS TRIGGER AS $$
DECLARE
idsupp integer;
idprod integer;
whamount integer;
BEGIN
SELECT PRODUCT INTO idsupp from SUPPLIERS where ID = NEW.SUPPLIER;
SELECT ID INTO idprod from PRODUCTS where ID = idsupp;
if (idprod > 0) then
select amount into whamount from warehouses where product = idprod;
update warehouses set amount = whamount * new.amount;
else
insert into warehouses (product,amount) values(idprod, new.amount);
end if;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER addtowh
AFTER INSERT ON orders FOR EACH ROW EXECUTE PROCEDURE add_towh ();
【问题讨论】:
标签: sql postgresql triggers plpgsql