我正在将一个值存储在变量featureId
中,然后尝试在SELECT语句中使用该值,但是postgres似乎正好采用了该名称,并正在寻找一个名为“ featureid”的列。我收到错误消息“ ERROR:列“ 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
答案 0 :(得分:1)
没有声明的变量,您的select partition_name from user_ind_partitions where index_name = 'Index_name'
是SELECT INTO
that creates a table的版本。要亲自观看,请尝试:
SELECT INTO
为将值分配给变量,必须声明该变量。您可以使用匿名SELECT id
INTO featureid
FROM tablea
WHERE name = 'some value';
SELECT *
FROM featureid;
块。
DO
答案 1 :(得分:0)
您尝试执行的操作几乎没有错误:
如果“ some-value”是一个已知常量,并且NAME是唯一的,只需将该值插入insert的where子句中即可。如果您想插入更多数据,请查看Postgres的批量插入语法:bulk insert