0

TRIGEER-->当我插入值时从一个表中获取列值到另一个表?我有两张桌子(customer_detailsloan_balance)。我需要的是,custid当我将数据插入到loan_balance 表中时,我必须将customer_details 表的列()添加到loan_balance 表中。这是我的查询的完整设置:SQL FIDDLE

所以我需要触发一个触发器,并且数据应该在没有动态插入 custid 的情况下自动更新。

4

1 回答 1

0

Postgres 有一种非常规的方式来创建触发器:

  1. 创建一个返回类型trigger并返回NEW行记录的函数
  2. 创建一个执行函数的触发器

这是您需要的代码:

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 上查看现场演示

于 2013-07-12T14:18:47.830 回答