首页 > 后端开发 > Golang > 正文

如何在 PostgresQL 中将整数数组存储为 Gorm 模型数据类型?

Linda Hamilton
发布: 2024-11-09 08:05:02
原创
195 人浏览过

How to Store an Array of Integers as a Gorm Model Data Type in PostgresQL?

将整数数组集成为 Gorm 模型数据类型

问题

Gorm 用户在尝试将整数数组存储在使用该框架的 PostgresQL 数据库的单个字段。错误消息“panic: invalid sql type (slice) for postgres”是由于 Gorm 的切片数据类型和 PostgresQL 的本机数组支持之间默认不匹配而出现的。

解决方案

解决要有效地解决这个问题,就需要采用底层数据库库提供的自定义类型。在这种情况下,pq 包提供了 pq.Int64Array 类型,它本身支持 PostgresQL 数组。以下代码举例说明了正确的用法:

<code class="go">type Game struct {
    gorm.Model
    GameCode    string
    GameName    string
    DeckType    pq.Int64Array `gorm:"type:integer[]"`
    GameEndDate string
}</code>
登录后复制

其中 Game.DeckType 使用 gorm:"type:integer[]" 标记指定类型,有效地将其定义为 PostgresQL 数据库中的整数数组。

插入示例

建立自定义类型后,您可以轻松地将整数数组插入到数据库:

<code class="go">dt := []int64{1, 2, 3}

db.Create(&Game{GameCode: "xxx", GameName: "xxx", DeckType: pq.Int64Array(dt), GameEndDate: "xxx"})</code>
登录后复制

此代码在 Game 表中创建一条新记录,其中 DeckType 存储为整数数组。

以上是如何在 PostgresQL 中将整数数组存储为 Gorm 模型数据类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板