Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在select查询postgreSQL中使用变量_Postgresql_Variables_Select_Procedure - Fatal编程技术网

如何在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您可能需要
临时视图
?它将在会话结束时删除,并且不会与其他会话冲突。细节。