【问题标题】:Discord.py Reaction Remove SQLite3 Database row and Discord MessageDiscord.py Reaction 删除 SQLite3 数据库行和 Discord 消息
【发布时间】:2021-05-30 01:14:07
【问题描述】:

这是我需要的程序的最后一部分,删除功能。在这部分之前,该机器人可以完美运行。我正在尝试添加一个删除函数来删除 Discord Embed 和相应的数据库行。

所以这个程序是通过提示用户工作的,然后他们的输入存储在我的 SQLite3 数据库中,然后显示在嵌入中。然后我有另一个命令!view,它显示数据库中每一行的嵌入以及相应的信息。它还在每个嵌入的末尾添加了一个垃圾桶表情符号。当按下反应删除嵌入以及它在数据库中相关的行时,我想要这个删除功能。我似乎都无法正常工作。

这里是!view 命令:

if message.content.startswith('!view'):
        rows = cursor.execute("SELECT name, renter, duration, price, start, end FROM rental").fetchall()
        for row in rows:
            embed = discord.Embed(title='Rental', color=0x0000FF)
            embed.set_thumbnail(url='https://www.pngkit.com/png/detail/231-2316751_database-database-icon-png.png')
            embed.add_field(name='Bot Name:', value=row[0], inline=False)
            embed.add_field(name='Renter Name:', value=row[1], inline=False)
            embed.add_field(name='Rental Duration:', value=row[2], inline=False)
            embed.add_field(name='Rental Price:', value=row[3], inline=False)
            embed.add_field(name='Start Date:', value=row[4], inline=False)
            embed.add_field(name='End Date:', value=row[5], inline=False)
            embed.set_footer(icon_url='https://pbs.twimg.com/profile_images/1325672283881484289/oaGtVIOD_400x400.png', text='Created by @Expected')
            msg = await message.channel.send(embed=embed)
            await msg.add_reaction('\U0001F5D1')

我知道如何删除不和谐消息,但数据库条目是它让我绊倒的地方。我是否需要通过像 ROWID 这样的唯一标识符来删除?我真的不知道该把这部分放在哪里。

【问题讨论】:

    标签: python sqlite discord.py


    【解决方案1】:

    通常是的,如果您想单独删除每个数据库条目,如果没有其他唯一值,则您需要一个唯一的 ID。 ROWID 实际上可以改变,所以你应该创建自己的唯一标识符并将其作为主键存储在数据库中

    CREATE TABLE IF NOT EXISTS rental(id INTEGER PRIMARY KEY, name...);

    SELECT id, name, renter, duration, price, start, end FROM rental

    查询将是:

    DELETE from rental WHERE id = ?

    【讨论】:

    • 感谢您的回答,我将其标记为解决方案。我之前已经想通了,但忘记更新问题了。再次感谢!
    猜你喜欢
    • 2018-07-24
    • 2018-06-29
    • 2021-09-08
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 2016-09-05
    • 1970-01-01
    相关资源
    最近更新 更多