[英]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.