>백엔드 개발 >Golang >PostgreSQL을 사용하여 Gorm 모델에 정수 배열을 저장하는 방법은 무엇입니까?

PostgreSQL을 사용하여 Gorm 모델에 정수 배열을 저장하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-05 14:49:02247검색

How to Store an Array of Integers in a Gorm Model Using PostgreSQL?

Gorm 모델의 데이터 유형으로 정수 배열 추가

소개:
작업할 때 Gorm을 사용하는 PostgreSQL에서는 정수 배열을 모델의 데이터 유형으로 추가하는 것이 어려울 수 있습니다. 이 문서에서는 이러한 작업을 시도할 때 발생하는 일반적인 문제를 다룹니다.

문제:
Gorm 모델은 단일 PostgreSQL 필드에 숫자 배열을 저장하려고 할 때 종종 오류가 발생합니다. 일반적으로 오류는 "패닉: Postgres에 대한 잘못된 SQL 유형(슬라이스)"입니다.

문제 해결:
이 문제는 슬라이스를 데이터 유형으로 사용할 때 발생합니다. 해결 방법에는 기본 PostgreSQL 드라이버 라이브러리의 사용자 정의 유형을 활용하는 것이 포함됩니다.

해결 방법:
제공된 모델에서:

<code class="go">type Game struct {
    gorm.Model
    GameCode    string
    GameName    string
    DeckType    pq.Int64Array
    GameEndDate string
}</code>

DeckType []int64를 다음으로 교체하세요. DeckType pq.Int64Array, 여기서 pq는 import pq "github.com/lib/pq"로 가져옵니다.

GORM 태그:
사용자 정의 유형을 데이터베이스 열에 올바르게 매핑하려면 , gorm 태그를 추가하여 열 유형을 지정합니다.

<code class="go">DeckType    pq.Int64Array `gorm:"type:integer[]"`</code>

이 태그는 DeckType 필드가 PostgreSQL 정수 배열에 매핑되어야 함을 나타냅니다.

삽입 예:
모델을 수정하고 GORM 태그를 추가한 후 데이터베이스에 정수 배열을 삽입할 수 있습니다.

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

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

사용자 정의 유형과 GORM 태그를 사용하면 정수 배열을 성공적으로 저장할 수 있습니다. PostgreSQL 필드의 정수.

위 내용은 PostgreSQL을 사용하여 Gorm 모델에 정수 배열을 저장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.