下面的查询在MySQL Workbench上运行得非常好,我加入了反勾号,这样node.js就可以处理它了:createdb.sql:
CREATE DATABASE IF NOT EXISTS `clients`;
USE `clients`;
CREATE TABLE IF NOT EXISTS `client_data` (
`id` INT NOT NULL AUTO_INCREMENT,
`unique_id` VARCHAR(255),
`uses` TINYINT,
`auth_time` DATE,
`last_cash` MEDIUMINT,
PRIMARY KEY (`id`)
);
这段代码非常简单,但是返回了一个语法错误:
const mysql = require ('mysql')
const dotenv = require('dotenv')
const fs = require ('fs')
dotenv.config()
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : process.env.MYSQL_KEY,
port: 3306
});
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
let createQuery = fs.readFileSync ('./queries/createdb.sql').toString()
createQuery = createQuery.replace(/(\r\n|\n|\r)/gm, " ");
console.log (createQuery)
connection.query(createQuery, function (error, results, fields) {
if (error) throw (error)
if (results) console.log (results)
if (fields) console.log (fields)
})
我不知道为什么这个完美的查询不工作...任何想法?
1条答案
按热度按时间vddsk6oq1#
出于安全考虑,默认情况下
mysql
驱动程序不支持多语句查询(这里有解释)。您可以启用多语句支持,如下所示: