目錄軟刪除
刪除記錄
警告刪除記錄時,請確保主鍵欄位有值,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...