【发布时间】:2022-01-05 18:10:59
【问题描述】:
大家好,我是在 node js 中使用 mysql 库的新手,我对在数据库中一次插入多行的可能性感兴趣。我制作了一个简单的代码,它从数据库表中捕获用户注册 ID,并使用该用户选择的角色索引。现在我想将用户和角色 id 添加到分别具有 user_id 和 role_id 的 Role_User 表中。
假设我想在不使用循环的情况下执行 3 次:
Insert Into User_role VALUES (1,20);
Insert Into User_role VALUES (2,20);
Insert Into User_role VALUES (3,20);
,其中第一列的数字 1、2、3 是角色索引。
Error I'm getting is RequestError: Incorrect syntax near '?'.
我怎样才能使这个查询工作?
if(req.body.roles){
var sqlQuery = `SELECT ID from Test_user Where email = @email`;
var indexiRola = findPositions(db.ROLES, req.body.roles);
request.input('role', db.sql.NChar, req.body.roles);
request.query(sqlQuery).then(
id => {
let ids = Array(req.body.roles.length).fill(id.recordset[0].ID);
console.log(ids); // [20, 20, 20]
let roleUsers = createSeperateLists(indexiRola, ids);
console.log(roleUsers); // [ [ 1, 20], [ 2, 20], [ 3, 20] ]
var insertQuery = `INSERT INTO Role_User ("role_ID", "user_id") VALUES ?`;
request.query(insertQuery, [roleUsers], function(err, result){
if(err) throw err;
console.log("Successfull insertion");
});
})
}
【问题讨论】:
-
插入 testuser(用户名,密码) VALUES ('user1', 1234), ('user2', 1234), ('user3', 1234);这是多行同时插入的sql查询,表示值需要插入数组类型数据
标签: javascript mysql sql node.js