PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

L'opérateur n'existe pas :entier = ? lors de l'utilisation de Postgres

PostgreSQL fonctionne avec des espaces réservés numérotés ($1 , $2 , ...) nativement plutôt que les points d'interrogation positionnels habituels. La documentation de l'interface Go utilise également des espaces réservés numérotés dans ses exemples :

rows, err := db.Query("SELECT name FROM users WHERE age = $1", age)

Il semble que l'interface Go ne traduise pas les points d'interrogation en espaces réservés numérotés comme le font de nombreuses interfaces, de sorte que le point d'interrogation se rend jusqu'à la base de données et embrouille tout.

Vous devriez pouvoir passer aux espaces réservés numérotés au lieu des points d'interrogation :

 row := db.QueryRow(
    "SELECT name FROM users WHERE id = $1", id)