我正在使用sqlx将一个PostgreSQL boolan[] Select 到一个Golang struct 中,其中目标 struct 的值是一个[]*bool.

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()")

返回的错误为:sql: Scan error on column index 3, name "replicated": unsupported Scan, storing driver.Value type []uint8 into type *[]*bool

我找遍了所有地方,但还没有找到解决办法.如有任何帮助,我们将不胜感激!

推荐答案

您只能扫描到实现.Scanner接口的东西.您可以将 struct 定义为

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"`
}

其中pq.BoolArray[]bool,或者如果您确实需要它是[]*bool,您可以创建您自己的类型

type BoolArray []*bool

然后从这里复制代码https://github.com/lib/pq/blob/2a217b94f5ccd3de31aec4152a541b9ff64bed05/array.go#L76并根据需要进行修改

Postgresql相关问答推荐

使用多个分隔符拆分SQL

如何使用docker/docker-compose转到本地主机?

无法在timscaleDb中创建Hypertable

使用pg_repack从PostgreSQL中的表中删除OID

使函数内部动态插入更具可读性

如何使用 go-pg 包删除所有记录

Gorm 创建表单数据文件上传错误

如何为基于复合类型的 Postgres DOMAIN 定义 CHECK 约束

Postgres中的GROUP BY - JSON数据类型不相等?

AWS RDS 公开访问

PostgreSQL 在 mySQL 中的 date_trunc

PostgreSQL - jsonb_each

如何检索 PostgreSQL 数据库的 comments ?

在不存在的行上有select for update块

Postgis 中 2 点之间的距离,单位为 4326 米

psql 致命角色不存在

使用 Hibernate 注释映射 PostgreSQL 串行类型

如何在我的 Mac 上卸载 postgresql(运行 Snow Leopard)

实时监控 PostgreSQL 查询的应用程序?

如何为本地 Rails 元素设置 Postgres 数据库?