Heim > Backend-Entwicklung > Golang > Scanfehler bei Spaltenindex 8, Name „repliziert': Scan wird nicht unterstützt, Treiber wird gespeichert. Wert vom Typ uint8 als Typ **bool

Scanfehler bei Spaltenindex 8, Name „repliziert': Scan wird nicht unterstützt, Treiber wird gespeichert. Wert vom Typ uint8 als Typ **bool

PHPz
Freigeben: 2024-02-12 15:15:07
nach vorne
925 Leute haben es durchsucht

列索引 8 上的扫描错误,名称“replicated”:不支持扫描,将 driver.Value 类型 uint8 存储为 **bool 类型

Frageninhalt

Ich verwende SQLX, um PostgreSQL boolan[] in eine Golang-Struktur auszuwählen, wobei der Zielstrukturwert []*bool ist.

type App struct {
    ApplicationID string  `db:"application_id"`
    Name          string  `db:"name"`
    Description   string  `db:"description"`
    Replicated    []*bool `db:"replicated"`
}

var apps []App

err := trx.Select(&apps, "Select * From my_function()")
Nach dem Login kopieren

Der zurückgegebene Fehler ist: sql: 列索引 3 上扫描错误,名称“replicated”: 不支持扫描,将 driver.Value 类型 []uint8 存储为类型 *[]*bool

Ich habe mich umgesehen, aber noch keine Lösung gefunden. Jede Hilfe wäre sehr dankbar!

Problemumgehung

Sie können nur Inhalte scannen, die die .Scanner-Schnittstelle implementieren. Sie können die Struktur als

definieren
import "github.com/lib/pq"

type App struct {
    ApplicationID string  `db:"application_id"`
    Name          string  `db:"name"`
    Description   string  `db:"description"`
    Replicated    pq.BoolArray `db:"replicated"`
}
Nach dem Login kopieren

Davon pq.BoolArray[]bool,或者如果您确实需要它是 []*bool können Sie Ihre eigenen Typen erstellen

type BoolArray []*bool
Nach dem Login kopieren

Dann kopieren Sie den Code von hier https://github. com/lib/pq/blob/2a217b94f5ccd3de31aec4152a541b9ff64bed05/array.go#L76 und ändern Sie sie nach Bedarf

Das obige ist der detaillierte Inhalt vonScanfehler bei Spaltenindex 8, Name „repliziert': Scan wird nicht unterstützt, Treiber wird gespeichert. Wert vom Typ uint8 als Typ **bool. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage