亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang?gorm更新日志執行SQL的方法

發布時間:2022-04-16 09:16:26 來源:億速云 閱讀:182 作者:iii 欄目:開發技術

這篇文章主要介紹了golang gorm更新日志執行SQL的方法的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇golang gorm更新日志執行SQL的方法文章都會有所收獲,下面我們一起來看看吧。

1. 更新日志

1.1. v1.0

1.1.1. 破壞性變更

  • gorm.Open返回類型為*gorm.DB而不是gorm.DB

  • 更新只會更新更改的字段

大多數應用程序不會受到影響,只有當您更改回調中的更新值(如BeforeSaveBeforeUpdate)時,應該使用scope.SetColumn,例如:

func (user *User) BeforeUpdate(scope *gorm.Scope) {
  if pw, err := bcrypt.GenerateFromPassword(user.Password, 0); err == nil {
    scope.SetColumn("EncryptedPassword", pw)
    // user.EncryptedPassword = pw  // 不工作,更新時不會包括EncryptedPassword字段
  }
}
  • 軟刪除的默認查詢作用域只會檢查deleted_at IS NULL

之前它會檢查deleted_at小于0001-01-02也排除空白時間,如:

SELECT * FROM users WHERE deleted_at IS NULL OR deleted_at <= '0001-01-02'

但是沒有必要,如果你使用*time.Time作為模型的DeletedAt,它已經被gorm.Model使用了,所以SQL就足夠了

SELECT * FROM users WHERE deleted_at IS NULL

所以如果你使用gorm.Model,那么你是好的,沒有什么需要改變,只要確保所有記錄的空白時間為deleted_at設置為NULL,示例遷移腳本:

import (
    "github.com/jinzhu/now"
)

func main() {
  var models = []interface{}{&User{}, &Image{}}
  for _, model := range models {
    db.Unscoped().Model(model).Where("deleted_at < ?", now.MustParse("0001-01-02")).Update("deleted_at", gorm.Expr("NULL"))
  }
}
  • 新的ToDBName邏輯

在GORM將struct,Field的名稱轉換為db名稱之前,只有那些來自golint的常見初始化(如HTTPURI)是特殊處理的。

所以字段HTTP的數據庫名稱將是http而不是h_t_t_p,但是一些其他的初始化,如SKU不在golint,它的數據庫名稱將是s_k_u,這看起來很丑陋,這個版本固定這個,任何大寫的初始化應該正確轉換。

錯誤RecordNotFound已重命名為ErrRecordNotFound

mssql驅動程序已從默認驅動程序中刪除,

導入它用import _ "github.com/jinzhu/gorm/dialects/mssql"

Hstore已移至github.com/jinzhu/gorm/dialects/postgres

gorm執行sql

type Object interface {
  GroupOrderOpenlog() (uidList []int)
}
func (o *object) GroupOrderOpenlog() {
	type res struct {
		Uid int `json:"uid"`
	}
	var re []res
	sql:= "SELECT uid FROM order_openlog  GROUP BY uid"
	o.Db.Raw(sql).Scan(&re)
	fmt.Println(re)
	for _,k :=range re{
		fmt.Println(k.Uid)
	}
}

關于“golang gorm更新日志執行SQL的方法”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“golang gorm更新日志執行SQL的方法”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇原县| 嵊州市| 台州市| 苍梧县| 乐山市| 绥德县| 永靖县| 桂林市| 平度市| 昌黎县| 嘉黎县| 磐安县| 精河县| 信丰县| 泸水县| 方正县| 合川市| 仁布县| 新田县| 巴南区| 宜州市| 梓潼县| 阆中市| 万山特区| 莆田市| 贡觉县| 盐源县| 纳雍县| 株洲县| 遂昌县| 安国市| 永仁县| 建瓯市| 静宁县| 犍为县| 柏乡县| 长寿区| 大兴区| 神农架林区| 桂林市| 灵丘县|