[英]How can I use a postgres variable in my SELECT statement?
我将一个值存储在变量featureId
,然后尝试在SELECT语句中使用该值,但是postgres似乎是从字面上取该名称,并正在寻找一列名为“ featureid”的列。 我收到错误消息“错误:列“ featureid”不存在第4行:featureId,”
我的代码如下。 如何在SELECT语句中使用变量的值?
SELECT id INTO featureId FROM tableA WHERE NAME = 'some value';
INSERT INTO tableB (client_id, feature_id, does_have)
SELECT
id,
featureId,
TRUE
FROM tableA
如果没有声明的变量你的SELECT INTO
是版本SELECT INTO
创建的表 。 要亲自查看,请尝试:
SELECT id
INTO featureid
FROM tablea
WHERE name = 'some value';
SELECT *
FROM featureid;
为了将值分配给变量,必须声明变量。 您可以使用匿名DO
块。
DO
$$
DECLARE
featureid tablea.id%TYPE;
BEGIN
SELECT id
INTO featureid
FROM tablea
WHERE name = 'some value';
INSERT INTO tableb
(client_id,
feature_id,
does_have)
SELECT id,
featureid,
true
FROM tablea;
END;
$$
LANGUAGE plpgsql;
您尝试执行的操作几乎没有错误:
如果'some-value'是一个已知常量,并且NAME是唯一的,只需将该值插入insert的where子句中即可。 如果您想插入更多数据,请查看postgres的批量插入语法: bulk insert
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.