golang/pq pq: оператор не существует: bigint = text

query := "WITH b(ColA, ColB) AS (VALUES ($1,$2)) UPDATE schema_name.table_name AS a SET ColC = b.ColB FROM b WHERE a.ColA = b.ColA AND a.ColB = b.ColB"
res, err := db.Exec(query, 1, 1)

Приведенный выше код завершается с ошибкой:

pq: operator does not exist: bigint = text

"ColC" относится к типу BIGINT.

Из моего исследования драйвер вставляет значения в виде текста вместо целых.

выпуск: https://github.com/lib/pq/issues/582

1 ответ

Оказывается, это поведение postgres, а не драйвер. Мне пришлось использовать явные приведения, чтобы мои запросы работали.

Другие вопросы по тегам