TRIGEER - >当我插入值时,从一个表到另一个表获取列值?
我有两张桌子(customer_details
和loan_balance
)。
我需要的是,当我将数据插入loan_balance表时,我必须将customer_details表的列(custid
)提供给loan_balance表。
这是我的查询的完整设置:SQL FIDDLE
所以我需要引发一个触发器,并且数据应该自动更新,而不会动态插入custid。
答案 0 :(得分:0)
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
来查找值,以防有多个匹配的行。您可能需要调整此逻辑以适合您的数据。