Ich habe die folgende SQL-AnweisungInterval arg in Postgres Abfrage über Golang SQLX ausgeführt
INSERT INTO scheduled_event_log ("key")
SELECT :key WHERE NOT EXISTS(SELECT AGE(now() at time zone 'utc', timestamp_utc)
FROM scheduled_event_log
WHERE "key" = :key
AND age(now() at time zone 'utc', timestamp_utc) < :interval limit 1);
ist der Postgres Intervalltyp. Ich bereite dies als eine benannte Aussage mit sqlx, aber Übergabe Args zu Exec(..)
wo ist ein Golang time.Duration
verursacht eine Panik.
Wie sollte ein Intervall auf diese Weise als Argument angegeben werden?
Was sagt die Panik? – Flimzy
hast du versucht $ 1, $ 2, ...? –
'Interval' ist ein schlechter Name für eine Variable (oder einen Parameter), da dies der Name für einen Datentyp ist. Und die 'LIMIT 1' macht keinen Sinn innerhalb einer 'EXISTS'-Unterabfrage. – joop