gorm系列 刪除

2022-01-25 08:33:10 字數 4125 閱讀 4309

目錄軟刪除

刪除記錄

警告刪除記錄時,請確保主鍵欄位有值,gorm 會通過主鍵去刪除記錄,如果主鍵為空,gorm 會刪除該 model 的所有記錄。

// 刪除現有記錄

db.delete(&email)

//// delete from emails where id=10;

// 為刪除 sql 新增額外的 sql 操作

)//1. 定義模型

type user struct

func main()

defer db.close()

//3. 把模型與資料庫中的表對應起來

db.automigrate(&user{})

//4. 刪除

//3. 把模型與資料庫中的表對應起來

db.automigrate(&user{})

//4. 刪除

批量刪除

刪除全部匹配的記錄

db.where("email like ?", "%jinzhu%").delete(email{})

//// delete from emails where email like "%jinzhu%";

db.delete(email{}, "email like ?", "%jinzhu%")

//// delete from emails where email like "%jinzhu%";

////4. 刪除

軟刪除如果乙個 model 有 deletedat 字段,他將自動獲得軟刪除的功能! 當呼叫 delete 方法時, 記錄不會真正的從資料庫中被刪除, 只會將deletedat 欄位的值會被設定為當前時間

db.delete(&user)

//// update users set deleted_at="2013-10-29 10:23" where id = 111;

// 批量刪除

db.where("age = ?", 20).delete(&user{})

//// update users set deleted_at="2013-10-29 10:23" where age = 20;

// 查詢記錄時會忽略被軟刪除的記錄

db.where("age = 20").find(&user)

//// select * from users where age = 20 and deleted_at is null;

// unscoped 方法可以查詢被軟刪除的記錄

db.unscoped().where("age = 20").find(&users)

//// select * from users where age = 20;

var u1 user

db.debug().unscoped().where("name = ?","yike").find(&u1)

//[2020-04-27 16:49:05] [21.96ms] select * from `users` where (name = 'yike')

//[1 rows affected or returned ]

物理刪除
//物理刪除

不使用軟刪除

)//1. 定義模型

type user struct

func main()

defer db.close()

//3. 把模型與資料庫中的表對應起來

db.automigrate(&user{})

////建立記錄

)//1. 定義模型

type user struct

func main()

defer db.close()

//3. 把模型與資料庫中的表對應起來

db.automigrate(&user{})

//刪除

gorm軟刪除 GORM 中文文件 2 4 刪除

刪除記錄 警告 當刪除一條記錄的時候,你需要確定這條記錄的主鍵有值,gorm會使用主鍵來刪除這條記錄。如果主鍵欄位為空,gorm會刪除模型中所有的記錄。刪除一條存在的記錄 db.delete email delete from emails where id 10 為刪除 sql 語句新增額外選項 ...

gorm中的刪除

刪除一條記錄時,刪除物件需要指定主鍵,否則會觸發 批量 delete,例如 db.debug where id 6 delete new user delete from users where id 6 db.debug delete user 5 delete from users where ...

gorm中實現軟刪除和硬刪除

如果您的模型包含乙個gorm.deletedat字段 包含在 中gorm.model 它將自動獲得軟刪除能力!呼叫 時delete,記錄不會從資料庫中刪除,但 gorm 會將deletedat的值設定為當前時間,並且不再使用正常的 query 方法查詢資料。使用者 id 為 111 db.delet...