go-gorm / gorm

The fantastic ORM library for Golang, aims to be developer friendly
https://gorm.io
MIT License
37.02k stars 3.94k forks source link

postgreSQL Insert []string construct insert statement failed:INSERT INTO "tags" ("tag_names") VALUES (('tag1','tag2','tag3')) RETURNING "id",It should be:INSERT INTO "tags" ("tag_names") VALUES (ARRAY['tag1', 'tag2', 'tag3']) RETURNING "id"; #7250

Closed zyylhn closed 23 hours ago

zyylhn commented 1 month ago

type Tag struct { ID uintgorm:"primaryKey" TagNames []stringgorm:"type:text[]"` // 指定为 PostgreSQL 的文本数组类型 }

tag := Tag{ TagNames: []string{"tag1", "tag2", "tag3"}, }

result := db.Create(&tag)
if result.Error != nil {
    t.Fatalf("failed to create tag: %v", result.Error)
}

output:

[1.699ms] [rows:0] INSERT INTO "tags" ("tag_names") VALUES (('tag1','tag2','tag3')) RETURNING "id" scan_result_test.go:101: failed to create tag: ERROR: column "tag_names" is of type text[] but expression is of type record (SQLSTATE 42804) --- FAIL: TestTest (0.00s) `

github-actions[bot] commented 1 month ago

The issue has been automatically marked as stale as it missing playground pull request link, which is important to help others understand your issue effectively and make sure the issue hasn't been fixed on latest master, checkout https://github.com/go-gorm/playground for details. it will be closed in 30 days if no further activity occurs. if you are asking question, please use the Question template, most likely your question already answered https://github.com/go-gorm/gorm/issues or described in the document https://gorm.ioSearch Before Asking