postgresql - 如何在选择查询 postgreSQL 中使用变量

标签 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;

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

ERROR: the column « serialvar » does not exist

LINE 3: SELECT * FROM cells WHERE battery_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_vue 将只显示 cells where battery_serial = 1 。这是你想要的吗? (下一个插入或其他内容将重新创建 View ,可能使用不同的 battery_serial。)

关于postgresql - 如何在选择查询 postgreSQL 中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13763563/

相关文章:

database - 强制 postgres 转储使用复制而不是插入

Javascript:如何将用户生成的文本存储在 javascript 的变量中?

javascript - 如何将 url 的第一部分设置为 HTML 链接中的 JavaScript 变量

javascript - 如何以编程方式选择 jsTree 中的隐藏节点?

java - 在 Lambda 函数中获取返回值

java - 将应用程序部署到 AWS Lambda 会引发 Postgres 驱动程序错误

python - 在 Python 中,统计类中变量的数量或防止添加新的类变量

select - 从 Go channel 获取值(value)

MySQL 查询在 phpmyadmin 中不起作用

python-3.x - Psycopg2 - 如何进行大型查询 - 超过 100 万行