Поэтому я пытаюсь вставить данные в свою таблицу с пакетом MySQL для nodejs, и, как вы можете видеть по ссылке, я сделал заявление if, что строка запроса на выборку пуста, выполните этот запрос, чтобы добавить данные или, если данные уже существуют, просто отправьте ответное сообщение. Моя проблема заключается в том, что он не читает оператор if должным образом, говоря, что строк не существует, пока существуют существующие данные.
error:
code: 'ER_DUP_ENTRY', errno: 1062, sqlMessage: «Дублирующая запись« 2147483647 »для ключа« PRIMARY », sqlState:« 23000 », индекс: 0, sql:« INSERT INTO test (discord_id, empire_name) VALUES ('188320189866180617', 'empire') "
код:
const db = require('../../db');
module.exports = {
name: "start",
category: "empire",
description: "Start your journey to create your empire.",
usage: "<string>",
run: async (client, message, args) => {
if (message.deletable) message.delete();
// No args
if (!args[0]) {
return message.reply("please give your empire a name.")
.then(m => m.delete(5000));
}
db.query(`SELECT * FROM test WHERE discord_id = '${message.author.id}'`, (err, rows) => {
if(err) throw err;
if(!rows.length) {
db.query(`INSERT INTO test (discord_id, empire_name) VALUES ('${message.author.id}', '${args[0]}')`);
return message.channel.send(`${args[0]} has been established!`);
} else {
return message.channel.send(`You've already started an empire.`);
}
});
}
}