TRIGEER-->当我插入值时从一个表中获取列值到另一个表?我有两张桌子(customer_details
和loan_balance
)。我需要的是,custid
当我将数据插入到loan_balance 表中时,我必须将customer_details 表的列()添加到loan_balance 表中。这是我的查询的完整设置:SQL FIDDLE
所以我需要触发一个触发器,并且数据应该在没有动态插入 custid 的情况下自动更新。
TRIGEER-->当我插入值时从一个表中获取列值到另一个表?我有两张桌子(customer_details
和loan_balance
)。我需要的是,custid
当我将数据插入到loan_balance 表中时,我必须将customer_details 表的列()添加到loan_balance 表中。这是我的查询的完整设置:SQL FIDDLE
所以我需要触发一个触发器,并且数据应该在没有动态插入 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
您可能必须调整此逻辑以适合您的数据。
在 SQLFiddle 上查看现场演示