📅  最后修改于: 2023-12-03 15:32:28.903000             🧑  作者: Mango
在 MySQL 数据库中,更新表中的数据是一种常见的操作。 Knex 是一个简单且灵活的 SQL 查询构建器,它可以简化这个过程,并允许我们在使用 JavaScript 时构建 SQL 查询。 本文将介绍使用 Knex 更新并列出所有记录 MySQL 表的方法。
在使用 Knex 之前,我们需要先安装它。 运行以下命令即可:
npm install knex
在开始更新和查询数据之前,我们需要使用 Knex 连接到我们的 MySQL 数据库。 首先,我们需要安装 Node.js 的 MySQL 驱动程序 - mysql2 :
npm install mysql2
建议使用环境变量将数据库凭据存储在您的项目中,并将其添加到您的 .env 文件中。 连接到数据库的方法如下:
const knex = require('knex')({
client: 'mysql2',
connection: {
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE
}
});
module.exports = knex;
请注意,这里我们使用了 mysql2 客户端。 您可以使用任何其他支持的客户端,例如 pg 或 sqlite3。
使用 Knex 更新数据非常简单,只需执行以下代码:
const knex = require('./knex');
knex('users')
.where({ id: 1 })
.update({ email: 'new-email@example.com' })
.then(() => {
console.log('User updated successfully');
})
.catch((err) => {
console.error(err);
});
此代码将更新 id 为 1 的用户的电子邮件地址。 请注意,我们使用了 .where() 方法来指定要更新的行,然后使用 .update() 方法来指定我们要更改的字段和值。
要列出 MySQL 表中的所有记录,请使用以下代码:
knex('users')
.select('*')
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.error(err);
});
这将选择表中的所有列,并将结果作为数组返回。 您可以在 .select() 方法中指定要选择的列。 要选择多个列,请将它们作为参数传递给 .select() 方法,如下所示:
knex('users')
.select('id', 'email')
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.error(err);
});
这将选择 id 和电子邮件列,并将它们作为对象数组返回。
你可以使用 knex.transaction()
将更新和查询操作组合在一起。 事务将确保操作在同一事务中运行,以确保数据的一致性。 实现方式如下:
knex
.transaction((trx) => {
return trx('users')
.where({ id: 1 })
.update({ email: 'new-email@example.com' })
.then(() => {
return trx('users').select('*');
})
})
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.error(err);
});
此代码将使用事务更新 id 为 1 的用户的电子邮件地址,并然后选取所有用户并将其作为数组返回。
在本文中,我们介绍了如何使用 Knex 更新并列出所有记录 MySQL 表。 有了 Knex,我们可以轻松地编写复杂的 SQL 查询,并对其进行修改和重构。