mysql - 关于数据逻辑删除的问题?
大家讲道理
大家讲道理 2017-04-17 13:53:20
0
3
1017

我在表中逻辑删除了一条数据,表中存在唯一索引的字段,逻辑删除后,我有要insert一条一样的数据,这样肯定不行,如何解决这个问题?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(3)
Peter_Zhu

1.如1L所言,取消唯一約束,靠程式控制;
2.如果是mysql的話,可以在insert語句後面加上on duplicate key update status = ?
3.同樣是mysql的情況下,也可以用replace into代替insert into;

關於這個問題其實還有很大的思考空間,最靈活的方法是1,但同樣要面臨產生髒數據的風險(髒數據對程式碼的影響就不多說了,處理過的都懂的);2、3理論上只能保存最近一次邏輯刪除的記錄

採用哪種方法視乎業務上對邏輯刪除數據保存要求,如果要保留歷史數據而又不想採用方法1的話,可以在2、3基礎上實時(代碼層面)或定時對邏輯刪除的數據遷移至歷史表。

以上是本人知道的方法,如果還有更好的方法,希望不吝賜教。

Peter_Zhu

最簡單的辦法就是取消唯一索引, 用程式來控制保證該欄位唯一。

左手右手慢动作

資料完全一樣(注意是完全一樣,修改時間之類的也一樣)的話,你恢復刪除就好了啊

如果資料不完全一樣,要嘛換個id再插入一遍,要嘛加一列做修改歷史

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板