如何在PostgreSql中创建触发器?
TRIGEER-->在插入值时从一个表到另一个表获取列值? 我有两张表(如何在PostgreSql中创建触发器?,postgresql,postgresql-9.1,postgresql-9.2,Postgresql,Postgresql 9.1,Postgresql 9.2,TRIGEER-->在插入值时从一个表到另一个表获取列值? 我有两张表(customer\u details和loan\u balance)。 我需要的是,当我将数据插入贷款余额表时,我必须将customer_details表的列(custid)添加到贷款余额表中。 这是我的查询的完整设置: 因此,我需要触发一个触发器,并且数据应该在不动态插入custid的情况下自动更新。Postgres有一种非传统的创建触发器的方法: 创建一个函数,返回类型trigger,并返回NEW行记录 创建一个执行函数
customer\u details
和loan\u balance
)。
我需要的是,当我将数据插入贷款余额表时,我必须将customer_details表的列(custid
)添加到贷款余额表中。
这是我的查询的完整设置:
因此,我需要触发一个触发器,并且数据应该在不动态插入custid的情况下自动更新。Postgres有一种非传统的创建触发器的方法:
trigger
,并返回NEW
行记录CREATE FUNCTION synch_custid_proc()
RETURNS trigger AS $$
BEGIN
NEW.custid = (
select max(custid)
from customer_details
where creditid = NEW.creditid
);
RETURN NEW;
END;
$$ LANGUAGE plpgsql
CREATE TRIGGER synch_custid_trig
BEFORE INSERT ON loan_amount
FOR EACH ROW
EXECUTE PROCEDURE synch_custid_proc();
在查找值时,我选择选择了max(custid)
,而不是简单地选择custid
,以防有多行匹配。您可能需要调整此逻辑以适合您的数据
参见a您是否阅读了在线文档?你试过什么吗?