INSERT INTO IF NOT EXISTS问题

news2024/10/6 16:30:14

情景说明:工作上遇到一个树形结构的数据,如有文件夹和子文件夹这样的数据。由于后端逻辑问题,导致在前端页面操作了删除功能后,数据库中仅部分数据被删除,比如只把根节点或是父节点删除了,没有级联删除所有子节点。然后实施那边的同事要求把数据再恢复回来,我找到运维的同事帮忙把前一天备份的数据给提取出来了,是一大堆insert into的语句,按理说我只要把被删掉的那几条数据插进去即可。
问题主要就是如何找出这几条数据来,有这么两种思路:
1.先把这一堆insert语句插到另一个表中,然后与业务表关联查询,找出被删除的列,然后单独复制出insert这几行数据的语句
2.修改这一堆insert语句,详见mysql insert if exists_mysql数据库中的insert if not exists

上面提到的两种方法都是可以的,只是稍微有一点点费力,我找到了如下的方式

insert into users values(1,"张三","123") ON DUPLICATE KEY UPDATE id = id;

ON之前的内容为运维给过来的插入语句,其后的内容为新加上来的。意思是如果该行数据插入时报DUPLICATE的错的话,就把该行ID的值更新为原来ID的值,也就是不更新,执行后也可以看到影响行数是0。这样相当于啥也没做,但是不报错了,也就实现了我的需求,已存在的插入语句啥也不做,也不报错。
这种方式的话,只需要在运维给过来的每一行INSERT语句的末尾添加上ON DUPLICATE KEY UPDATE id = id即可。如下,只需要正则替换一下就可以了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/412990.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

九龙证券|什么是庄家洗盘和出货?各有什么特征?

在股市独占的是庄家,在市场上独占的是商人。庄家的存在便是为了把资金投入市场变成本钱,使用本钱获取最大赢利。庄家的各类方法也是为了不惜一切代价获取最大赢利。今天我们来了解什么是庄家洗盘和出货?各有什么特征?下面就为大家…

所有知识付费都可以用 ChatGPT 再割一次?

伴随春天一起到来的,还有如雨后春笋般冒出的 ChatGPT / AI 相关的付费社群、课程训练营、知识星球等。 ChatGPT 吹来的这股 AI 热潮,这几个月想必大家多多少少都能感受到。 ▲ 图片来源:网络 这两张图是最近在圈子里看到的。 一张是国内各…

SpringBoot —— 日志基本操作

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ SpringBoot —— 日志基本操作一、日志的作用二…

Adobe全家桶功能介绍

Adobe全家桶是一套由Adobe公司开发的创意设计软件集合,包含了许多功能强大的软件,可以帮助用户完成各种创意设计任务。 以下是Adobe全家桶中一些主要软件的功能介绍: Photoshop:用于图像处理和编辑,可以进行图像裁剪…

Gradio介绍

Gradio App 就是给 AI 算法工程师训练的模型赋予分享给大众的能力。 从技术侧拆分,由三个部分组成: 前端页面 后端接口 AI算法模型推理 Gradio 做了一件事情,就是将这三个部分封装到一个 python 接口里,用户通过实现其封装的…

进来拿!最近疯传的154页微软 GPT-4早期实验报告:探究 AGI进化之路(全中文版)

这应该是,最近一段时间以来,关于 ChatGPT4.0剖析最全面的一份报告。 看懂10%,能帮我们对 ChatGPT 的认识,有一个质的跃升; 看懂50%,你将是分享 ChatGPT 知识领域最顶尖的那一拨人。 这份报告证明了 GPT-4…

Prometheus+Mysqld_exporter+Grafana从0到1搭建MySQL的可视化监控

目 录1. 准备工作1.1 安装MySQL1.2 安装Prometheus1.3 安装Mysqld_exporter1.4 安装Grafana2. 更改配置2.1 配置Mysqld_exporter2.2 配置Prometheus2.3 配置Grafana3. 小 结1. 准备工作 安装 MySQL 数据库安装 Prometheus安装 Mysqld_exporter安装 Grafana 在正式开始搭建之前…

面试官:如何在命令行跑Postman?

在接口自动化过程中,每次都打开postman工具来手动运行脚本显得不智能,所以可以通过命令在无UI或者其他持续集成的平台上执行脚本和数据。 01、环境准备与检查 环境准备 导出collection 安装node.js和cnpm 安装newman 环境检查 检测node.js&#x…

加密组件Jasypt学习、实战及踩坑记录

概述 最近入职新公司,因几乎全部项目都使用到jasypt,故而初步学习记录下本文(持续更新)。 官网及GitHub给出的简介:使用简单,性能好,特性features非常丰富;支持 另,有个…

leetcode刷题——字符串(双指针、滑动窗口、动态规划)

文章目录3.无重复字符的最长子串5.最长回文子串8. 字符串转换整数 (atoi)3.无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 //双指针滑动窗口数组hash int lengthOfLongestSubstring(char * s){int hash[127] {0}; //…

生产管理系统是什么?它有哪些功能模块?

阅读本文您将了解:1.企业生产管理的问题;2.生产管理系统模块有哪些;3.如何利用生产管理系统模块解决问题。 一、企业生产管理会遇到哪些问题? 生产管理是有计划、组织、指挥、监督调节的生产活动。以最少的资源损耗,…

Qt Quick - Menu

Qt Quick - Menu使用总结一、概述二、上下文菜单三、弹出式菜单四、子菜单和Action五、美化一、概述 Menu其实就是Qt Quick里面的菜单控件,一般来说。 Menu有两种主要用例: 上下文菜单;例如,右键单击后显示的菜单弹出菜单;例如…

高比例可再生能源电力系统的调峰成本量化与分摊模型(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

VSCode远程调试linux

文章目录前言1. 给从机安装GCC与GDB2. 编写测试 .c文件3. 本地编译生成可执行文件4. VSCode配置4.1 拓展安装4.2 ssh连接与配置4.3 配置debug5. 开启调试前言 这个调试是基于迅为itop3568板子进行调试的,如果你的不是这个板子,其实其他的也差不多流程。…

什么是瀑布流布局?瀑布流式布局的优缺点

瀑布流又称瀑布流式布局,是一种多列等宽不等高的一种页面布局方式。 视觉表现为参差不齐的多栏布局。随着页面滚动条向下滚动,这种布局会不断加载数据并附加至当前的尾部。 是一种多列等宽不等高的一种页面布局方式,用于图片比较复杂&#…

Python每日一练(20230415)

目录 1. 路径总和 II 🌟🌟 2. 两数相除 🌟🌟 3. 不同的二叉搜索树 II 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日…

基于小波分解+深度信念网络DBN的脑电信号分类识别

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) DBN的脑电信号分类识别 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,本文用DBN提取特征,用SVM分类,实现二者长处互补 DBN神…

docker在mac-m1芯片部署并启用tomcat

手把手教你使用docker在mac-m1芯片部署并启用tomcat 1,下载docker并安装 登陆官网下载dockr,选择mi芯片的docker下载 下载地址:https://www.docker.com/get-started 2,配置docker的阿里云加速器(也可以配置其他加速…

Java_Mybatis:1. 框架概述

目录 1 什么是框架 1.1 框架的概念 1.2 框架要解决的问题 1.3 软件开发的分层重要性 1.4 分层开发下的常见框架 1.5 MyBatis 框架概述 2 JDBC 编程的分析 2.1 jdbc 程序的回顾 2.2 jdbc 问题分析 1 什么是框架 1.1 框架的概念 应用方面:框架(Fra…

https://app.hackthebox.com/machines/Squashed

https://app.hackthebox.com/machines/Squashed info collecting ┌──(kwkl㉿kwkl)-[~] └─$ sudo nmap -A 10.10.11.191 -T4 …