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.
Из моего исследования драйвер вставляет значения в виде текста вместо целых.
1 ответ
Оказывается, это поведение postgres, а не драйвер. Мне пришлось использовать явные приведения, чтобы мои запросы работали.