Я использую плагин mysql для nodejs, и это фантастика, когда я делаю все, что мне нужно.
Однако я столкнулся с камнем преткновения. Я создал поставщика MySQL, который экспортирует пул mysql:
var mysql = require('mysql');
var mysqlPool = mysql.createPool({
host : '127.0.0.1',
user : 'root',
password : ''
});
mysqlPool.getConnection(function(err, connection) {
connection.query("INSERT INTO ....
Я могу выбрать, создать, вставить и т.д. все хорошо, но я столкнулся с задачей, в которой я хотел бы запустить небольшую строку SQL с примерно 10 различными командами. Я подумал о том, чтобы выполнить одно из следующих действий:
- Выполнить файл SQL с помощью базы данных mysql
- Запустите a
query
и включитеmultipleStatements
Я написал код для выполнения mysql
в качестве дочернего процесса, но мне очень хотелось бы избежать этого:
var cp = require("child_process");
var cmdLine = "mysql --user=autobuild --password=something newdb < load.sql";
cp.exec(cmdLine, function(error,stdout,stderr) {
console.log(error,stdout,stderr);
});
Проблема с вариантом два заключается в том, что я бы предпочел не включать multipleStatements для каждого запроса, а только один конкретный. Я думал о создании нового соединения, но просто думал о других способах этого. Это можно сделать.
TL;? DR Используя NodeJS и MySQL, как я могу выполнить следующее в базе данных:
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20) );
CREATE TABLE sofa (name VARCHAR(20), owner VARCHAR(20) );
CREATE TABLE table (name VARCHAR(20), owner VARCHAR(20) );
Большое спасибо за каждого, кто разделяет их идеи.