Ошибка при создании таблиц в MySQL с помощью node.js - PullRequest
0 голосов
/ 08 декабря 2018

У меня проблемы с созданием моей таблицы в MySQL, таблица возвращает ошибку ER_Parse_Error.Я просматривал таблицу и не могу найти причину ошибки, если бы кто-нибудь мог посмотреть, я был бы очень признателен.Ниже приведена таблица: Таблица.

И вот возвращаемая ошибка: Ошибка возвращена.

Редактировать: Вот таблица втекст:

//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)

1 Ответ

0 голосов
/ 08 декабря 2018

Поскольку MySQL нечувствителен к регистру для зарезервированных ключевых слов mysql, следовательно, Порядок обрабатывается так же, как order и order является зарезервированным ключевым словом MySQL, и, следовательно, вы не можетесоздайте такую ​​таблицу под именем order.

Итак, если вы хотите создать свою таблицу под этим именем, используйте что-то вроде этого:

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));

Здесь test - это тестовая база данных, гдея хочу создать свою таблицу.

...