GO·NOTE

一份 Go 开发工程师的学习笔记

0%

postgres-InsertOrUpdate

1
2
3
4
5
6
7
8
9
10
11
12

func (um *UModel) InsertOrUpdate(session *xorm.Session) (int64, error) {

sql := fmt.Sprintf(`INSERT INTO %s (id,user_id,mine_id,status) VALUES(?,?,?,?)
ON CONFLICT (user_id,mine_id) DO UPDATE SET
status = ?;`, um.TableName())
result, err := session.SQL(sql, um.Id, um.UserId, um.MineId, um.Status).Execute()
if err != nil {
return -1, err
}
return result.RowsAffected()
}