当前位置: 首页 > news >正文

MySQL模块---更新和删除数据

1. 更新数据

// 更新数据
// 要更新的数据
const user = { username: 'aaaaaa777', password: 'bbb7777', status: 1, id:7}
// 要执行的 sql 语句
const sqlStr = 'update users set username=?, password=?, status=? where id=?'
// 调用 db.query() 执行 sql 的同时,使用数组依次为占位符指定具体的值
db.query(sqlStr, [user.username, user.password, user.status, user.id], (err, results) => {// 失败if (err) return console.log(err.message);// 成功if (results.affectedRows === 1) {console.log('更新数据成功');}
})

2. 更新数据的便捷方法

        更新数据表时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速更新表数据

// 更新数据的快捷方法
// 要更新的数据
const user = { username: 'aaaa77', password: '00077', status: 1, id:7}
// 要执行的 sql 语句
const sqlStr = 'update users set ? where id=?'
// 调用 db.query() 执行 sql 的同时,使用数组依次为占位符指定具体的值
db.query(sqlStr,[user, user.id], (err, results) => {// 失败if (err) return console.log(err.message);// 成功if (results.affectedRows === 1) {console.log('更新数据成功');}
})

3. 删除数据

        在删除数据时,推荐根据 id 这样的唯一标识来删除对应的数据

// 删除数据
// 要执行的 sql 语句
const sqlStr = 'delete from users where id=?'
// 调用 db.query() 执行 sql 的同时,使用数组依次为占位符指定具体的值
db.query(sqlStr,7, (err, results) => {// 失败if (err) return console.log(err.message);// 成功if (results.affectedRows === 1) {console.log('删除数据成功');}
})

4. 标记删除

        使用 delete 语句,会把真正的数据从表中删除掉。为了保险起见,推荐使用标记删除的形式,来模拟删除的动作

        标记删除,就是在表中设置类似于 status 这样的状态字段,来标记当前这条数据是否被删除

        当用户执行了删除的动作时,我们没有执行 delete 语句把数据删除掉,而是执行了 update 语句,将这条数据对应的 status 字段标记为了删除即可。

// 标记删除
// 标记删除:使用 update 语句代替 delete 语句:只更新数据的状态,并没有真正删除
db.query('update users set status=1 where id=?',6, (err, results) => {// 失败if (err) return console.log(err.message);// 成功if (results.affectedRows === 1) {console.log('删除数据成功');}
})

相关文章:

  • 【计算机网络】https的工作原理以及和http的区别
  • Leet code 179 最大数
  • 【PyTorch】基础学习:在Pycharm等IDE中打印或查看Pytorch版本信息
  • 白话模电:3.三极管(考研面试与笔试常考问题)
  • 【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列一:R-CNN图文详解
  • Django验证码(二)
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的自动驾驶目标检测系统详解(深度学习+Python代码+PySide6界面+训练数据集)
  • GAMES104-现代游戏引擎 1
  • 用 Visual Studio 调试器中查看内存中图像
  • LeetCode 395. 至少有K个重复字符的最长子串
  • 在Linux/Ubuntu/Debian中使用windows应用程序/软件
  • 实战:django项目环境搭建(pycharm,virtualBox)
  • Jenkins: 配置自动化发布脚本
  • 蓝桥杯2022年第十三届省赛真题-GCD
  • CSS3病毒病原体图形特效
  • Druid 在有赞的实践
  • ESLint简单操作
  • flutter的key在widget list的作用以及必要性
  • javascript面向对象之创建对象
  • LeetCode18.四数之和 JavaScript
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Object.assign方法不能实现深复制
  • python_bomb----数据类型总结
  • Spark学习笔记之相关记录
  • SpringBoot几种定时任务的实现方式
  • 从零开始学习部署
  • 高度不固定时垂直居中
  • 今年的LC3大会没了?
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 使用API自动生成工具优化前端工作流
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 我的业余项目总结
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 应用生命周期终极 DevOps 工具包
  • HanLP分词命名实体提取详解
  • ​TypeScript都不会用,也敢说会前端?
  • !$boo在php中什么意思,php前戏
  • #includecmath
  • #Linux(Source Insight安装及工程建立)
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (1)常见O(n^2)排序算法解析
  • (NSDate) 时间 (time )比较
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (蓝桥杯每日一题)love
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)负载均衡,回话保持,cookie
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • /run/containerd/containerd.sock connect: connection refused
  • []常用AT命令解释()