数据库内数据已清除,刷新后又出现

背景

源于客户需求要写一个告警接口,对第三方接口的返回值进行判断,达到一定数值后要推送告警,数值正常后要推送告警恢复。经过对数据的分析以及接口逻辑处理,采用数据库查询写入等方式。(对此告警接口感兴趣的朋友请点击: 告警推送,还在编辑中。)

测试时往数据库写入发现逻辑有问题,在修改过程中发现数据库中的数据还在变动,即便我不进行任何操作。

问题

连接数据库,找到test库,test111表,因为我之前已经进行过truncate table 'test111',所以目前此表应该是有结构但是无数据,可是查询后还有值。

show databases;

use test;

show tables;

desc test111;

select * from test111 limit 1;

将目前已有数据部分手动清除:输入以下命令

truncate table 'test111';

select * from test111 where id = '1';

此时查询表显示为空,但等2秒后再查询发现还有。

删除此表,除非不再建同名表,才可以解决问题。可是现在只是测试,如果以后生产环境遇到类似问题,不能随便改数据库!!!!!!我个人不觉得这是什么好方法。

解决方案

  1. 查看表内的数据,是否能找到对应的执行内容,也就是什么进程导致的数据写入。
  • 我的这个比较简单,因为写入有明确的id及数据内容,我就找到了是某一个接口,原来虽然那个测试接口我已经在页面上停掉了,但是进程还在执行中,我把进程杀掉后数据库表正常了。
  • 此处还涉及到一个问题,相当于是进程还在导致的程序执行写入数据库,也就是我要看三个地方,页面,进程,数据库。页面删除了不代表进程和数据库清理,同理进程杀掉了因为数据库仍有数据导致页面有显示。以后此处要多注意了。

总结

简单就是:进程没有停干净。根据数据库表中数据找到进程,杀掉,再清理一遍库,稍后再查询看看是不是正常了。

相关推荐
派大星酷3 分钟前
AOP 完整精讲:原理、核心概念、五种通知、切点语法、自定义注解实战
java·mysql·spring
baidu_340998824 分钟前
如何用HTML函数工具测试显卡性能_基准跑分详解【详解】
jvm·数据库·python
qq_283720055 分钟前
Chroma 向量数据库详细介绍与实战全攻略
数据库·人工智能·向量数据库·chroma
瀚高PG实验室5 分钟前
pg_dump: error: no matching tables were found
数据库·瀚高数据库
2301_813599558 分钟前
如何处理MongoDB副本集中节点IP变更_rs.reconfig强制更新配置矩阵
jvm·数据库·python
健康平安的活着9 分钟前
mysql中不同时间类型(date/datetime/timestamp)的查询案例
数据库·mysql
User_芊芊君子9 分钟前
数据库选型指南:架构演进的技术实践
大数据·数据库·架构
2301_7965885011 分钟前
如何用数据库版本号机制平滑升级前端本地的数据表结构
jvm·数据库·python
zhangchaoxies13 分钟前
如何配置Oracle 19c JSON存储_环境要求与自动类型映射
jvm·数据库·python
BU摆烂会噶14 分钟前
【工作流的常见模式】LangGraph 常用模式:路由模式(条件分支)
数据库·人工智能·python·langchain