update 支持postgres RETURNING 语法
This commit is contained in:
parent
22c2027a30
commit
fc871d266e
@ -66,7 +66,10 @@ func Update(db *gorm.DB) {
|
|||||||
} else {
|
} else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
db.Statement.Build("UPDATE", "SET", "WHERE", "RETURNING")
|
db.Statement.Build("UPDATE", "SET", "WHERE")
|
||||||
|
if db.Dialector.Name() == "postgres" {
|
||||||
|
db.Statement.Build("RETURNING")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := db.Statement.Clauses["WHERE"]; !db.AllowGlobalUpdate && !ok {
|
if _, ok := db.Statement.Clauses["WHERE"]; !db.AllowGlobalUpdate && !ok {
|
||||||
|
@ -11,6 +11,12 @@ func (returning Returning) Name() string {
|
|||||||
|
|
||||||
// Build build where clause
|
// Build build where clause
|
||||||
func (returning Returning) Build(builder Builder) {
|
func (returning Returning) Build(builder Builder) {
|
||||||
|
for _, column := range returning.Columns {
|
||||||
|
if column.Name == "*" {
|
||||||
|
builder.WriteByte('*')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
for idx, column := range returning.Columns {
|
for idx, column := range returning.Columns {
|
||||||
if idx > 0 {
|
if idx > 0 {
|
||||||
builder.WriteByte(',')
|
builder.WriteByte(',')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user