java 数据库防重细颗粒

来源:互联网 发布:惠阳区网络问政平台 编辑:程序博客网 时间:2024/04/26 23:27

根据主键+状态+类型进行数据库防重

状态:0为初始状态,2为进行状态,4为成功状态

步骤如下:

1、首先生成一个主键序列号

2、根据类型+状态不为2的条件进行查询,如果未存在,则插入一条记录,反之不插入记录,如果在高并发的时候查询都不存在,

由于插入的时候主键是唯一的,所以只能插入前一条是成功的,后一条肯定是失败的

3、此时查到已经存在的数据,则将该记录更新为进行中的状态sql如下:

update t_tableName t set t.status='2',t.......

where t.status <> '2' and t.type = '22' ;


4、该线程跑完好,再将进行中的状态更新到成功状态sql如下:

update t_tableName t set t.status='4',t.......

where t.status = '2' and t.type = '22' ;


0 0
原创粉丝点击