MySQL配合node实现 批量 添加、删除、修改 操作

1,591 阅读1分钟

mysql配合node 配置项

使用批量操作需要开启 multipleStatements 配置

// 用户库 
let mysql = require('mysql'); 
let connection = mysql.createConnection({ 
    host: 'localhost', 
    user: 'root', 
    password: '密码', 
    database: '数据库名', 
    //这一功能打开以后,你就可以像下面的例子一样同时使用多条查询语句:
    multipleStatements: true, 
}); // 链接=== connection.connect();

mysql配合node实现批量添加 实现代码入下


let aGetRouterListMsqs = async (data, Callback) => {
    let valuess = [ 
        [0, 'hu1', '2'], 
        [0, 'ke1', '0'], 
        [0, 'yi1', '1'] 
    ] // 批量操作数据结构
    let sql = `insert into 表名(id,path,name) value ?`;
    connection.query(sql, [data], function (err, result) { 
        console.log(err,result) 
    }); 
    connection.end() 
}

mysql配合node实现批量删除 实现代码入下

let deleteAll = async (data, Callback) => {
    let sql = `DELETE FROM 表名 WHERE id in (${data})`;
    connection.query(sql, function (err, result) { 
        console.log(err,result) 
    });
    connection.end() 
} 
deleteAll("00000000002,00000000003,00000000004")

mysql配合node实现批量修改

mysql有个神奇的语法:insert into ... on duplicate key update,该语法在insert的时候, 如果insert的数据会引起唯一索引(包括主键索引)的冲突,即这个唯一值重复了,则不会执行insert操作, 而执行后面的update操作。我们通过这个特性就可以利用批量insert的方法来进行批量更新,代码如下:

let updateAll = async (data, Callback) => { 
    let arr = [ 
        [0, 'sss', '1221'],
        [1, 'sss', '1221'], 
        [2, 'sss', '1221'] 
    ]; 
    let sql = `insert into 表名 (id, name,age) values ? ON DUPLICATE KEY UPDATE formModel= values(name),label= values(age)`; 
    connection.query(sql, [arr], function (err, result) { 
        console.log(err,result)
    }); 
    connection.end() 
}