问题描述
debug出来的sql语句如下
INSERT INTO "sys_authority" ("authority_id") VALUES ('0005') RETURNING "
可以看到最后的 RETURNING
后面提供的是一个空字符串。
这回导致如下报错
ERROR: unterminated quoted identifier at or near """ (SQLSTATE 42601)
解决方案
使用子句构造器Clauses来指定 RETURNING
需要返回的字段。
//import "gorm.io/gorm/clause"
global.DB.Clauses(clause.Returning{Columns: nil}).Create(&data).Error
sql语句如下,可以看到变为了RETURNING *
INSERT INTO "sys_authority" ("authority_id") VALUES ('0005') RETURNING *
当然也可以手动指定返回的字段
//import "gorm.io/gorm/clause"
global.DB.Debug().Clauses(clause.Returning{Columns: []clause.Column{{Name: "authority_id"}}}).Create(&data).Error
sql语句如下
INSERT INTO "sys_authority" ("authority_id") VALUES ('0005') RETURNING 'authority_id'