PostgreSQL에서는 구조체 필드가 복잡하거나 JSON을 포함하는 경우 구조체를 데이터베이스에 직접 삽입하는 것이 간단하지 않습니다. 배열. 그러나 외부 라이브러리를 활용하면 보다 효율적인 방식으로 삽입 기능을 구현할 수 있습니다.
sqlx 라이브러리(github.com/jmoiron/sqlx)는 우아한 솔루션을 제공합니다. 이 문제에. 이를 사용하려면 먼저 각 구조체 필드에 db 태그를 지정하여 데이터베이스 필드 이름을 지정하세요.
<code class="go">type ApplyLeave1 struct { LeaveId int `db:"leaveid"` EmpId string `db:"empid"` SupervisorEmpId string `db:"supervisorid"` // ... other fields }</code>
그런 다음 sqlx에서 NamedExec 함수를 사용하여 전체 구조체를 데이터베이스에 삽입하세요.
<code class="go">import ( "github.com/jmoiron/sqlx" "log" ) query := `INSERT INTO TABLENAME(leaveid, empid, supervisorid, ...) VALUES(:leaveid, :empid, :supervisorid, ...)` var leave1 ApplyLeave1 db, err := sqlx.Connect("postgres", "user=foo dbname=bar sslmode=disable") if err != nil { log.Fatalln(err) } _, err = db.NamedExec(query, leave1) if err != nil { log.Fatalln(err) }</code>
JSON 배열 삽입
구조체에서 JSON 배열을 처리하려면 필드에 db:"array" 태그를 지정하여 PostgreSQL의 배열 데이터 유형을 사용할 수 있습니다.
<code class="go">type CertificateInfo struct { Id int64 `db:"id"` FileName string `db:"filename"` FileType string `db:"filetype"` FileLocation string `db:"filelocation"` } type ApplyLeave1 struct { // ... other fields Certificates []CertificateInfo `db:"certificates,array"` }</code>
이러한 단계를 따르면 JSON 배열을 포함한 복잡한 구조체를 PostgreSQL 데이터베이스에 원활하게 삽입하여 코드를 단순화하고 데이터 삽입 효율성을 높일 수 있습니다.
위 내용은 JSON 배열을 포함한 복잡한 구조체를 PostgreSQL 데이터베이스에 직접 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!