Итак, я интегрирую своего Discord.JS
бота с SQLite3
и добавляю функцию, в которой пользователи могут хранить свой идентификатор и имя пользователя в таблице. В настоящее время то, что у меня есть, только создаст новую строку в таблице, если идентификатор и имя пользователя еще не существует в строке таблицы, и создаст новую строку, если данные не существуют. Я хочу знать, есть ли способ исключить что-либо из запроса, если строка существует, и чтобы я мог ее перехватить, а затем сделать что-то еще.
Я пытался if..else
утверждений, но я хочу знать, есть ли более простой способ добиться этого.
Это то, что у меня есть в настоящее время, и работает как описано выше.
let userC = message.mentions.members.first()
db.serialize(() => {
db.run('CREATE TABLE IF NOT EXISTS user (id TEXT, name TEXT)');
db.run(`INSERT INTO user (id, name) SELECT '${userC.id}', '${userC.user.username}' WHERE NOT EXISTS(SELECT 1 FROM user WHERE id = '${userC.id}' AND name = '${userC.user.username}')`)
});
message.reply('Added the user to the database.');
В идеале, если строка существует, message.reply('Added the user to the database.');
не будет выполняться и вместо этого продолжит с message.reply('That user already exists within the database');
Но если строка не существует, она вставляет строку и данные и продолжает только с message.reply('Added the user to the database.');