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