Я сохраняю массив целых чисел в таблицу PostgreSQL, и при попытке получить его я всегда получаю [] uint8 вместо [] int. Я пытался использовать [] integer, [] bigint, [] smallint. ничего не работает Массив представляет максимум четыре элемента, каждый из которых находится в диапазоне от 1 до 100, без плавающей запятой.
Я использую Go, и у меня есть объект, который является [] int, это поле :
Quantity []int `json:"quantity" db:"quantity"`
Я пытаюсь это исправить, но не могу найти способ заставить PostgreSQL вернуть [] int.
Все остальные поля таблицы работают отлично. поле Quantity
имеет тип integer[]
Это запрос вставки:
"INSERT INTO products (product_id, name, manufacturer, image_url, quantity, amount, notes, store_id, store_name, owner_id) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)", newProduct.UID, newProduct.Name, newProduct.Manufacturer, newProduct.Image, pq.Array(newProduct.Quantity), newProduct.Amount, newProduct.Notes, newProduct.StoreID, newProduct.StoreName, newProduct.OwnerID);
Вот как я пытаюсь получить данные.
err := rows.Scan(&temp.ID, &temp.UID, &temp.Name, &temp.Manufacturer,
&temp.Image, &temp.Amount, &temp.Notes,
&temp.StoreID, &temp.OwnerID, &temp.StoreName, &temp.Quantity)
Проблема только в количестве. Если я заменю temp object
на []uint8
вместо []int
, я получу байты.