Ich versuche ?
in der folgenden Art und Weise zu verwenden (ich es in Golang verwenden Abfrage zu generieren, aber es scheint, wie es nicht abhängig ist Go):PostgreSQL "?" Argument Platzhalter funktioniert nicht für „MIT“
WITH Tmp(name, enabled) AS (
VALUES(?, ?),(?, ?)
)
UPDATE table_groups
SET enabled = (SELECT enabled
FROM Tmp
WHERE table_groups.name=Tmp.name)
WHERE table_groups.name IN (SELECT name FROM Tmp)
bekommen :
syntax error at or near ","
Wenn ich ?
in der obigen Aussage durch konkrete Werte ersetzen, funktioniert alles einwandfrei. Gibt es ein Problem mit ?
mit WITH
und wie würde ich es umgehen? Vielen Dank.
Unrelated: Sie müssen nicht die skalare Unterabfrage müssen. – wildplasser
Ich dachte, Postgres funktioniert nur mit nummerierten Platzhaltern, d. H. "$ 1". –
Mit welchem Treiberpaket arbeiten Sie mit pgsql? Sie wissen, dass Go keine Treiber für RDBMS in seiner Standardbibliothek enthält. Daher müssen Sie uns unbedingt mitteilen, was Sie tun. Wenn Sie 'github.com/lib/pq' verwenden, erwähnen [die Dokumente] (https://godoc.org/github.com/lib/pq) nur' $ n'-Stil-Parameter, wie @Ainar- Ich schlug vor. IOW, Formate von Abfrageplatzhaltern sind treiberspezifisch, nicht universell. – kostix