Chcę móc napisać tablicę bigints do tabeli, której używam dla historii w Go. Niestety, nie mogę i kiedy robię błąd, jest zgłaszany błąd sql: converting Exec argument #1's type: unsupported type []int64, a slice
. Oto, co robię, edytowane za zwięzłość:Wstawianie tablicy do bazy danych Postgresql w Golang
type Card struct {
cid int64
}
type Transaction struct {
tid, cardid int64
productids []int64
salepoint int
cardkey string
}
func logPurchase(card *Card, t *Transaction) {
_, err := db.Exec("INSERT INTO history VALUES ($1, $2, $3, $4)", rand.Int63(), t.productids, card.cid, t.salepoint);
}
Jest to struktura tabeli, które chciałbym wstawić do: tid bigint primary key, productids bigint[] not null, cardid bigint not null, salepoint int
Wygląda na to, że masz dodatkową wartość na liście wartości. – jmaloney
Dobry połów, nie jestem pewien, jak udało mi się to tam umieścić. Ten problem nie istnieje w kodzie źródłowym, w którym mam ten problem. Odpowiednio zaktualizowałem pytanie. – ShrekTheDinosaur
Typy tablic są specyficzne dla PostgreSQL. Może być konieczne użycie biblioteki dostosowanej do postgresql, takiej jak: https://github.com/go-pg/pg – dyoo