所以我集成了我的Discord.JS
机器人,SQLite3
并添加了一个功能,用户可以在表格中存储他们的 ID 和用户名。目前,如果用户的 ID 和名称在表的一行中不存在,我只会在表中创建一个新行,如果数据不存在则创建一个新行。我想知道的是,如果行确实存在,是否有办法从查询中抛出一些东西,并且让我能够抓住它,然后做其他事情。
我已经尝试过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.');