刪除記錄
警告:當刪除一條記錄的時候,你需要確定這條記錄的主鍵有值,gorm會使用主鍵來刪除這條記錄。如果主鍵欄位為空,gorm會刪除模型中所有的記錄。
// 刪除一條存在的記錄
db.delete(&email)
delete from emails where id=10;
// 為刪除 sql 語句新增額外選項
db.set("gorm:delete_option", "option (optimize for unknown)").delete(&email)
delete from emails where id=10 option (optimize for unknown);
批量刪除
刪除所有匹配的記錄
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%";
軟刪除如果模型中有 deletedat 字段,它將自動擁有軟刪除的能力!當執行刪除操作時,資料並不會永久的從資料庫中刪除,而是將 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;
// 使用 unscoped 方法永久刪除記錄
db.unscoped().delete(&order)
delete from orders where id=10;
gorm系列 刪除
目錄軟刪除 刪除記錄 警告刪除記錄時,請確保主鍵欄位有值,gorm 會通過主鍵去刪除記錄,如果主鍵為空,gorm 會刪除該 model 的所有記錄。刪除現有記錄 db.delete email delete from emails where id 10 為刪除 sql 新增額外的 sql 操作 1...
gorm中實現軟刪除和硬刪除
如果您的模型包含乙個gorm.deletedat字段 包含在 中gorm.model 它將自動獲得軟刪除能力!呼叫 時delete,記錄不會從資料庫中刪除,但 gorm 會將deletedat的值設定為當前時間,並且不再使用正常的 query 方法查詢資料。使用者 id 為 111 db.delet...
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 ...