Ich verwende Go, um eine Abfrage auf einer PostgreSQL-DB auszuführen. Beachten Sie, dass im DB id
der Typ bigint
ist.Vergleichen von Feld zu Platzhalter - PostgreSQL
db.Exec("UPDATE tags SET association_count = association_count - 1 WHERE id=?;", id)
Wenn ich diesen Code ausführen, bekomme ich einen SQL-Fehler
operator does not exist: bigint =?
Von dem, was ich sagen kann dies durch eine Typisierung Diskrepanz zwischen den id
verursacht wird und die ?
. Ich habe versucht, mit ::
zu werfen, aber es wirft einen Fehler, und habe nichts darüber gefunden. Interessanterweise wird bei einem Leerzeichen wie id = ?
ein allgemeiner Syntaxfehler ausgegeben. Irgendeine Idee, wie man das wirft oder umgeht?
Es ist kein Typproblem. Das Problem ist, dass der Platzhalter nicht ersetzt wird oder der 'ID'-Variablenwert '? ' –
Könnte das Problem das Semikolon sein? –
@ClodoaldoNETo Was meinst du mit dem 'id' Variablenwert ist'? '? Wie Postgres weiß nicht, welche 'ID' es anschaut? – cfatt10