如何在select查询postgreSQL中使用变量
这就是我的问题 我有一个程序:如何在select查询postgreSQL中使用变量,postgresql,variables,select,procedure,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行:从电池
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行:从电池\u serial=serialVar的单元中选择*
必须将值传递到动态SQL中,如
BEGIN
EXECUTE $$CREATE OR REPLACE VIEW battery_vue
AS
SELECT * FROM cells WHERE battery_serial = $$ || NEW.battery_serial;
RETURN NEW;
END;
通过这种方式,您可以获取新值,如果该值为1(例如),
battery\u vue
将仅显示单元
,其中battery\u serial=1
。这是你想要的吗?(下一次插入或任何内容都将重新创建视图,可能使用不同的电池_serial
)谢谢您的回答,它很有效!,是,我希望视图仅显示Battery_serials=1您可能需要临时视图
?它将在会话结束时删除,并且不会与其他会话冲突。细节。