Supongo que estás usando node-mysql . (pero también debería funcionar para node-mysql2 )
Los docs dice:
La compatibilidad con varias declaraciones está deshabilitada por razones de seguridad (permite ataques de inyección SQL si los valores no se escapan correctamente).
Consultas de declaraciones múltiples
Para usar esta función, debe habilitarla para su conexión:
var connection = mysql.createConnection({multipleStatements: true});
Una vez habilitado, puede ejecutar consultas con varias declaraciones separando cada declaración con un punto y coma ;
. El resultado será una matriz para cada declaración.
Ejemplo
connection.query('SELECT ?; SELECT ?', [1, 2], function(err, results) {
if (err) throw err;
// `results` is an array with one element for every statement in the query:
console.log(results[0]); // [{1: 1}]
console.log(results[1]); // [{2: 2}]
});
Entonces, si ha habilitado multipleStatements
, tu primer código debería funcionar.