使用node.js在MySQL中创建表时出错
我在MySQL中创建表时遇到问题。该表返回一个ER_Parse_错误。我一直在浏览表格,找不到导致错误的原因,如果有人能看一下,我将非常感激。 下表如下: 下面是它返回的错误: 编辑:以下是文本表格:使用node.js在MySQL中创建表时出错,mysql,node.js,parse-error,Mysql,Node.js,Parse Error,我在MySQL中创建表时遇到问题。该表返回一个ER_Parse_错误。我一直在浏览表格,找不到导致错误的原因,如果有人能看一下,我将非常感激。 下表如下: 下面是它返回的错误: 编辑:以下是文本表格: //Cian var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "", database: "******" }); c
//Cian
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "******"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
var sql = "CREATE TABLE Order ( order_id INTEGER(10) AUTO_INCREMENT PRIMARY KEY, order_description VARCHAR(255),order_date DATETIME,order_state VARCHAR(255),order_report_id integer(10))";
con.query(sql, function (err, result) {
if (err) throw err;
console.log("Table created");
});
});
以下是文本中的错误:
Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Order ( order_id INTEGER(10) AUTO_INCREMENT PRIMARY KEY, order_description VARCH' at line 1
at Query.Sequence._packetToError (H:\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
at Query.ErrorPacket (H:\node_modules\mysql\lib\protocol\sequences\Query.js:77:18)
at Protocol._parsePacket (H:\node_modules\mysql\lib\protocol\Protocol.js:278:23)
at Parser.write (H:\node_modules\mysql\lib\protocol\Parser.js:76:12)
at Protocol.write (H:\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (H:\node_modules\mysql\lib\Connection.js:91:28)
at Socket.<anonymous> (H:\node_modules\mysql\lib\Connection.js:502:10)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:283:12)
at readableAddChunk (_stream_readable.js:264:11)
--------------------
at Protocol._enqueue (H:\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Connection.query (H:\node_modules\mysql\lib\Connection.js:200:25)
at Handshake.<anonymous> (H:\Cloud\create_tables.js:120:6)
at Handshake.<anonymous> (H:\node_modules\mysql\lib\Connection.js:502:10)
at Handshake._callback (H:\node_modules\mysql\lib\Connection.js:468:16)
at Handshake.Sequence.end (H:\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
at Handshake.Sequence.OkPacket (H:\node_modules\mysql\lib\protocol\sequences\Sequence.js:92:8)
at Protocol._parsePacket (H:\node_modules\mysql\lib\protocol\Protocol.js:278:23)
at Parser.write (H:\node_modules\mysql\lib\protocol\Parser.js:76:12)
at Protocol.write (H:\node_modules\mysql\lib\protocol\Protocol.js:38:16)
Error:ER\u PARSE\u Error:SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,了解在第1行使用“Order(Order_id INTEGER(10)AUTO_INCREMENT PRIMARY KEY,Order_description VARCH)”的正确语法
在Query.Sequence.\u packetToError(H:\node\u modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
在Query.ErrorPacket(H:\node\u modules\mysql\lib\protocol\sequences\Query.js:77:18)
at Protocol.\u parsePacket(H:\node\u modules\mysql\lib\Protocol\Protocol.js:278:23)
在Parser.write(H:\node\u modules\mysql\lib\protocol\Parser.js:76:12)
在Protocol.write(H:\node\u modules\mysql\lib\Protocol\Protocol.js:38:16)
在套接字上。(H:\node\u modules\mysql\lib\Connection.js:91:28)
在套接字上。(H:\node\u modules\mysql\lib\Connection.js:502:10)
在Socket.emit(events.js:182:13)
在addChunk(_stream_readable.js:283:12)
在readableAddChunk(_stream_readable.js:264:11)
--------------------
at Protocol.\u排队(H:\node\u modules\mysql\lib\Protocol\Protocol.js:144:48)
在Connection.query(H:\node\u modules\mysql\lib\Connection.js:200:25)
握手时。(H:\Cloud\create_tables.js:120:6)
握手时。(H:\node\u modules\mysql\lib\Connection.js:502:10)
握手时。\u回调(H:\node\u modules\mysql\lib\Connection.js:468:16)
在Handshake.Sequence.end(H:\node\u modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
在Handshake.Sequence.OkPacket(H:\node\u modules\mysql\lib\protocol\sequences\Sequence.js:92:8)
at Protocol.\u parsePacket(H:\node\u modules\mysql\lib\Protocol\Protocol.js:278:23)
在Parser.write(H:\node\u modules\mysql\lib\protocol\Parser.js:76:12)
在Protocol.write(H:\node\u modules\mysql\lib\Protocol\Protocol.js:38:16)
由于MySQL对MySQL保留关键字不区分大小写,因此,订单被视为与订单相同,订单是MySQL保留关键字,因此不能以订单的名称创建这样的表
因此,如果要使用此名称创建表,请使用类似以下内容:
CREATE TABLE test.Order (order_id INTEGER(10) AUTO_INCREMENT PRIMARY KEY, order_description VARCHAR(255), order_date DATETIME, order_state VARCHAR(255), order_report_id integer(10));
这里是一个测试数据库,我想在其中创建我的表。请将代码和错误消息作为文本而不是图像添加到问题中。看起来您没有关闭括号。按顺序后,您有“(”,但它没有关闭。