84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
我在表中逻辑删除了一条数据,表中存在唯一索引的字段,逻辑删除后,我有要insert一条一样的数据,这样肯定不行,如何解决这个问题?
光阴似箭催人老,日月如移越少年。
1.如1L所言,取消唯一约束,靠程序控制;2.如果是mysql的话,可以在insert语句后面加上on duplicate key update status = ?3.同样是mysql的情况下,也可以用replace into代替insert into;
关于这个问题其实还有很大的思考空间,最灵活的方法是1,但同样要面临产生脏数据的风险(脏数据对程序代码的影响就不多说了,处理过的都懂的);2、3理论上只能保存最近一次逻辑删除的记录
采用哪种方法视乎业务上对逻辑删除数据保存要求,如果要保留历史数据而又不想采用方法1的话,可以在2、3基础上实时(代码层面)或定时对逻辑删除的数据迁移至历史表。
以上是本人知道的方法,如果还有更好的方法,希望不吝赐教。
最简单的办法就是取消唯一索引, 用程序来控制保证该字段唯一。
数据完全一样(注意是完全一样,修改时间之类的也一样)的话,你恢复删除就好了啊
如果数据不完全一样,要么换个id再插入一遍,要么加一列做修改历史
1.如1L所言,取消唯一约束,靠程序控制;
2.如果是mysql的话,可以在insert语句后面加上on duplicate key update status = ?
3.同样是mysql的情况下,也可以用replace into代替insert into;
关于这个问题其实还有很大的思考空间,最灵活的方法是1,但同样要面临产生脏数据的风险(脏数据对程序代码的影响就不多说了,处理过的都懂的);2、3理论上只能保存最近一次逻辑删除的记录
采用哪种方法视乎业务上对逻辑删除数据保存要求,如果要保留历史数据而又不想采用方法1的话,可以在2、3基础上实时(代码层面)或定时对逻辑删除的数据迁移至历史表。
以上是本人知道的方法,如果还有更好的方法,希望不吝赐教。
最简单的办法就是取消唯一索引, 用程序来控制保证该字段唯一。
数据完全一样(注意是完全一样,修改时间之类的也一样)的话,你恢复删除就好了啊
如果数据不完全一样,要么换个id再插入一遍,要么加一列做修改历史