mysql数据库新增数据前判断该条记录是否存在?

发布于 2021-12-06 09:30:01 字数 514 浏览 710 评论 6

需求:实现实时显示电子围栏根据设定规则生成报警记录,可处理

主键: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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

坏尐絯 2021-12-09 11:49:01

是否处理 打错了

瑾夏年华 2021-12-09 11:48:54

回复
这样的话用insert ingore应该解决不了。应该放到事务中判断和修改这个处理标识

偏爱自由 2021-12-09 11:48:08

回复
能不能提供一个大概的Demo , 就是说我这种操作全部交给数据库 不用后台代码去做吗

够钟 2021-12-09 11:45:24

回复
要后台处理。大致这样:1、查询判断是否存在。2、不存在时插入记录处理并处理。3、存在时判断状态,已处理则跳过。4、未处理时开启事务做处理,防止重复处理。具体还是要看你们的业务逻辑,防止重复处理的情况。

感情旳空白 2021-12-09 11:21:23

回复
感谢!你已经帮我解决了两个问题了,大神

把昨日还给我 2021-12-07 16:07:34

关键点在于怎么判断这条报警记录是否未处理。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文