如何在select查询postgreSQL中使用变量

时间:2012-12-07 12:57:44

标签: postgresql variables select procedure

所以这是我的问题,

我有一个程序:

    DECLARE
serialvar INTEGER;

BEGIN
serialvar := NEW.battery_serial;

CREATE OR REPLACE VIEW battery_vue
AS
SELECT * FROM cells WHERE battery_serial = serialvar;
RETURN NEW;
END;

但是当该程序的触发器被激活时,我有一个错误说:

  

错误:列«serialvar»不存在

     

第3行:SELECT * FROM cells WHERE battery_serial = serialVar

1 个答案:

答案 0 :(得分:1)

您必须将值传递给动态SQL,如

BEGIN

EXECUTE $$CREATE OR REPLACE VIEW battery_vue
AS
SELECT * FROM cells WHERE battery_serial = $$ || NEW.battery_serial;

RETURN NEW;

END;

这样您就可以获取新值,如果它是1(例如),那么battery_vue将只显示cells battery_serial = 1。这是你想要的吗? (下一个插入或其他任何会重新创建视图,可能使用不同的battery_serial。)