sql >> Base de Datos >  >> RDS >> PostgreSQL

El operador no existe:entero =? al usar postgres

PostgreSQL funciona con marcadores de posición numerados ($1 , $2 , ...) de forma nativa en lugar de los habituales signos de interrogación posicionales. La documentación de la interfaz de Go también utiliza marcadores de posición numerados en sus ejemplos:

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

Parece que la interfaz de Go no traduce los signos de interrogación a marcadores de posición numerados como lo hacen muchas interfaces, por lo que el signo de interrogación llega hasta la base de datos y lo confunde todo.

Debería poder cambiar a marcadores de posición numerados en lugar de signos de interrogación:

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