数据驱动的 Node.js 应用程序通常需要修改存储在 MySQL 数据库中的一条或多条记录。这是通过将 UPDATE 查询字符串作为参数传递给 mysql.query() 方法来完成的。很多时候,具有现有记录的数据要以用户输入的形式进行更新,例如在基于 Web 的 Node.js 应用程序中发布的 HTML 表单。在本章中,您将学习如何执行 MySQL UPDATE 查询。从一个简单的 UPDATE 开始,使用准备好的语句和 UPDATE 和 JOIN 将在合适的Node.js示例的帮助下进行演示。
简单的更新
MySQL中基本UPDATE语句的语法如下 -
假设数据库mydb在MySQL服务器上可用,并且employee表存在以下数据 -
例
以下程序更新了员工表的工资字段,将每个员工的工资增加了 500 卢比
运行上述代码后,转到MySQL命令行客户端并检查employee表中的行 -
您还可以在代码中添加如下循环来查看员工记录
输出
RowDataPacket { name: 'Ravi', salary: 25500 },
RowDataPacket { name: 'Anil', salary: 30500 },
RowDataPacket { name: 'Meena', salary: 27500 }
]
使用准备好的语句进行更新
MySQL支持预准备语句。您可以通过在查询字符串中嵌入的占位符中插入变量数据来动态构建查询。MySQL使用?符号作为占位符。
这将使以 Anil 为名的员工的工资更新为 40000 卢比
更新联接
JOIN 子句更常用于 SELECT 查询中,用于从两个或多个相关表中检索数据。您还可以在 UPDATE 查询中包含 JOIN 子句,以执行跨表更新。
在这个例子中,我们将创建两个具有公共字段的表,以在两者之间建立 PRIMARY KEY − FOREIGN KEY 关系。
优点表
添加一些数据 -
案情表内容 -
Employees 表
在此表中,性能是外键,指的是优点表中同名的键。
添加一些数据 -
employees 表的内容 -
我们希望根据与员工绩效评级相关的百分比来增加员工的工资。
例
输出
fieldCount: 0,
affectedRows: 7,
insertId: 0,
serverStatus: 34,
warningCount: 0,
message: '(Rows matched: 7 Changed: 6 Warnings: 0',
protocol41: true,
changedRows: 6
}
检查员工表中更新的工资字段 -