在某些场景下,需要同时执行多条sql语句。nodeJS 中,如果希望执行多条 mysql 语句,只用在 createConnection 的方法中,设置 multipleStatements 属性的值为 true,即可。
var obj = {
host: '127.0.0.1', //IP
port: 3306, //端口
database: 'page_incubator', //库名
user: 'root', //用户名
password: '123456', //密码
multipleStatements: true // 支持执行多条 sql 语句
},
connPool = mysql.createPool(obj);
connPool.getConnection(function (err, connection) {
//获取数据库的所有表名
var SQL = "select table_name from information_schema.tables where table_schema = '" + obj.database + "'";
connection.query(SQL, function (err, result) {
if (err) throw err;
var tableSQL = '',
str = 'show create table ';
result.forEach( (item,index) => {
var tableName = item.TABLE_NAME || item.table_name;
tableSQL += str + "`" + tableName + "`" + '; '
})
if (tableSQL != '') {
//执行多条sql语句,获取数据库里的所有表的建表语句
connection.query(tableSQL, function (err, result) {
if (err) throw err;
event.returnValue = result;
connection.release();//释放链接
});
} else {
event.returnValue = result;
connection.release();//释放链接
}
});
查询结果的数据结构为一个数组,然后数组中的每个元素依次是 mysql 语句的结果。