PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

O operador não existe:integer =? ao usar o Postgres


O PostgreSQL funciona com espaços reservados numerados ($1 , $2 , ...) nativamente em vez dos pontos de interrogação posicionais usuais. A documentação da interface Go também usa espaços reservados numerados em seus exemplos:
rows, err := db.Query("SELECT name FROM users WHERE age = $1", age)

Parece que a interface Go não está traduzindo os pontos de interrogação para espaços reservados numerados da maneira que muitas interfaces fazem, então o ponto de interrogação está chegando ao banco de dados e confundindo tudo.

Você deve poder alternar para espaços reservados numerados em vez de pontos de interrogação:
 row := db.QueryRow(
    "SELECT name FROM users WHERE id = $1", id)