线上问题复盘记录

cust_id误刷问题

问题原因:错误的update语句,导致本来更新一条数据的, 结果更新了全表

解决措施:找DBA从备份库,将生产库cust_id为0的数据,恢复到误刷前一秒的cust_id

后续改进:

禁止以任意方式直接执行sql

如果需要修改线上数据,应使用针对单边,单行操作的业务型接口

如有批量数据, 应提jira交DBA执行

sql问题解析:

有问题的sql: update deal_order set cust_id=1234 and order_id=666666666

可以看到这个sql中没有where条件, 而是使用的and,在执行过程中会被解析为 : update deal_order set cust_id=(1234 and order_id=666666666)

注意(1234 and order_id=666666666)是一个布尔类型的值。 and 前后都为大于0的值,那么整体会是1 ,否则整体为0 。

在此sql执行之后,order_id=666666666的记录, cust_id会被刷为1,其余的记录cust_id会全部刷为0

相关推荐

  1. 线问题记录

    2023-12-30 15:18:02       36 阅读
  2. 2、线过程

    2023-12-30 15:18:02       37 阅读
  3. 线问题得解决

    2023-12-30 15:18:02       39 阅读
  4. 设计模式

    2023-12-30 15:18:02       31 阅读
  5. 面试——10

    2023-12-30 15:18:02       32 阅读
  6. 面试——9

    2023-12-30 15:18:02       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-30 15:18:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-30 15:18:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-30 15:18:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-30 15:18:02       20 阅读

热门阅读

  1. 如何使用人工智能算法解决实际业务问题?

    2023-12-30 15:18:02       33 阅读
  2. 在ubuntu上挂载QNX 镜像

    2023-12-30 15:18:02       41 阅读
  3. AJAX:整理1: 了解AJAX的相关知识

    2023-12-30 15:18:02       37 阅读
  4. Vue3.2 自定义指令详解与实战

    2023-12-30 15:18:02       39 阅读
  5. 猴子摘香蕉python

    2023-12-30 15:18:02       41 阅读
  6. 80 BFS和DFS两种方式解岛屿数量

    2023-12-30 15:18:02       40 阅读
  7. HTML5简介与基础骨架

    2023-12-30 15:18:02       38 阅读
  8. numpy数组追加元素

    2023-12-30 15:18:02       42 阅读
  9. Linux 命令 ifconfig 全面解析!

    2023-12-30 15:18:02       69 阅读
  10. git、gitee、github、gitlab 区别以及功能

    2023-12-30 15:18:02       44 阅读
  11. 一些与漏洞相关的面试题

    2023-12-30 15:18:02       31 阅读