mysql数据库新增数据前判断该条记录是否存在?
需求:实现实时显示电子围栏根据设定规则生成报警记录,可处理
主键:UUID
数据库:mysql
定期器:spring quartz
我想实现每次定期器调用新增前查询这条报警记录是否存在,并且未处理。如果存在并且未处理,不新增,不修改。如果不存在或者存在已处理则做新增一条记录处理,下面是用sql语句,但是因为字段有报警开始时间,定时器1分钟的话 前后时间本身就不同,目前还没有想到用后台代码去怎么实现。希望有大神帮忙提供点思路,或者有什么技术可以解决这种问题
INSERT IGNORE INTO w_alarm_monitor_record (
area_name,
alarm_type,
alarm_level,
current_num,
preset_num,
is_handle
)
VALUES
(
'火车站区域',
'1',
'1',
'0',
'100',
'1'
);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
是否处理 打错了
回复
这样的话用insert ingore应该解决不了。应该放到事务中判断和修改这个处理标识
回复
能不能提供一个大概的Demo , 就是说我这种操作全部交给数据库 不用后台代码去做吗
回复
要后台处理。大致这样:1、查询判断是否存在。2、不存在时插入记录处理并处理。3、存在时判断状态,已处理则跳过。4、未处理时开启事务做处理,防止重复处理。具体还是要看你们的业务逻辑,防止重复处理的情况。
回复
感谢!你已经帮我解决了两个问题了,大神
关键点在于怎么判断这条报警记录是否未处理。