插入前从查询中获取值,并在插入后使用它

时间:2017-06-19 22:27:46

标签: sql postgresql plsql pgadmin

我正在尝试执行PostgreSQL函数触发器,在我的数据库的其他表中插入记录后,在一个表中插入一些值。只有在满足某个条件时才会执行此insert语句。

条件需要将表中最新记录的一个字段值与当前插入的相同字段值进行比较。我的问题是,我不知道如何插入最新的行,因为插入触发器后 on "我目前的插入现在是我的最新一行。所以条件总是true

这是我目前的做法:

DECLARE
    latest_val numeric;
    val_qry text := 'SELECT field_value FROM tablename WHERE type = ''$1'' order by date_field desc limit 1';

    sql text := 'INSERT INTO other_table( type, description)
                 SELECT $1, ''Data event was created'' WHERE $2 != $3';
BEGIN  
    EXECUTE val_qry INTO latest_val USING NEW.type; 
    EXECUTE sql USING NEW.type, latest_val, NEW.field_value;
    RETURN NEW;
END;

如何在新插入之前获取最新行的字段值,然后在当前插入后使用它?或另一种方法来做到这一点?

0 个答案:

没有答案