gorm中實現軟刪除和硬刪除

2022-09-09 15:27:30 字數 995 閱讀 3220

如果您的模型包含乙個gorm.deletedat字段(包含在 中gorm.model),它將自動獲得軟刪除能力!

呼叫 時delete,記錄不會從資料庫中刪除,但 gorm 會將deletedat的值設定為當前時間,並且不再使用正常的 query 方法查詢資料。

// 使用者 id 為 `111`

db.delete(&user)

// 更新使用者 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;

查詢軟刪除記錄
db.unscoped().where( "age = 20" ).find(&users) 

// select * from users where age = 20;

db.unscoped().delete(&order) 

// delete from orders where id=10;

如果程式中,使用了預設的gorm生成資料庫,使用了軟刪除,那麼在執行gorm的查詢結果中,被軟刪除的資料是不能被查詢到的;

但是,在資料庫工具中,使用軟刪除的資料,執行t-sql語句可以被查詢到,判斷的標誌是,deleted_at有時間(deleted_at is null;);就像乙個**站,我覺得可以使用軟刪除。

mysql軟刪除與硬刪除 軟刪除和硬刪除的處理方法

硬刪除 硬刪除就是傳統的物理刪除,直接將該記錄從資料庫中刪除。但是是人總會犯錯誤,在誤操作刪除了重要資料後,如果想要恢復該資料,需要鎖表再去訪問日誌檔案。這樣會造成大量的人力資源浪費,現在的開發不推介這種方式。軟刪除軟刪除又叫邏輯刪除,標記刪除,與我們常說的刪除不同,並不是真的從資料庫中將這條記錄去...

mysql軟刪除與硬刪除 軟刪除和硬刪除的處理方法

硬刪除 硬刪除就是傳統的物理刪除,直接將該記錄從資料庫中刪除。但是是人總會犯錯誤,在誤操作刪除了重要資料後,如果想要恢復該資料,需要鎖表再去訪問日誌檔案。這樣會造成大量的人力資源浪費,現在的開發不推介這種方式。軟刪除軟刪除又叫邏輯刪除,標記刪除,與我們常說的刪除不同,並不是真的從資料庫中將這條記錄去...

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

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