WITH novos_valores (cd_cidade, nm_cidade, uf) AS (values (12000, 'FAKE CITY', 'RS')),
upsert AS (UPDATE cidade cid
SET nm_cidade = nv.nm_cidade, uf = nv.uf
FROM novos_valores nv
WHERE cid.cd_cidade = nv.cd_cidade RETURNING *)
INSERT INTO cidade (cd_cidade, nm_cidade, uf)
SELECT cd_cidade, nm_cidade, uf
FROM novos_valores
WHERE NOT EXISTS (SELECT 1 FROM upsert WHERE upsert.cd_cidade = novos_valores.cd_cidade)
上面的查詢返回下面的錯誤,但我只是不能看到它在哪裏,任何人都可以幫助我嗎?PostgreSQL含糊錯誤
SQL Error:
ERROR: column reference "cd_cidade" is ambiguous LINE 11: ...
WHERE NOT EXISTS (SELECT 1 FROM upsert WHERE upsert.cd_... ^
在塊:
WITH novos_valores (cd_cidade, nm_cidade, uf) AS (values (12000, 'FAKE CITY', 'RS')),
upsert AS (UPDATE cidade cid
SET nm_cidade = nv.nm_cidade, uf = nv.uf
FROM novos_valores nv
WHERE cid.cd_cidade = nv.cd_cidade RETURNING *)
INSERT INTO cidade (cd_cidade, nm_cidade, uf)
SELECT cd_cidade, nm_cidade, uf
FROM novos_valores
WHERE NOT EXISTS (SELECT 1 FROM upsert WHERE upsert.cd_cidade = novos_valores.cd_cidade)
Execution time: 3.045 ms
檢查:'UPDATE CID SET nm_cidade = nv.nm_cidade,UF = nv.uf FROM novos_valores nv JOIN cidade cid USING(cd_cidade) RETURNING *' – lad2025