返回在更新序列中更改的行

2024-09-30 06:31:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图返回更新序列中使用的行,以检查它是否实际更新了任何内容,或者它试图更新不存在的行,但是我在返回实际行时遇到了问题

在询问朋友和查看其他文章时,我尝试使用他们提供的方法,例如使用sqlite3的rowcount方法,以及执行函数中的返回语句,但两者都分别抛出AttributeError和SQLError

def set_reason(guild: str, warn_id: int, reason):
    warns.execute("UPDATE warns SET reason=:reason WHERE id=:id AND server=:guild", {'reason': reason, 'id': warn_id, 'guild': guild})
    return warns.fetchone()

正在尝试使用返回语句:

warns.execute("UPDATE warns SET reason=:reason WHERE id=:id AND server=:guild RETURNING warns.*", {'reason': reason, 'id': warn_id, 'guild': guild})

我得到apsw.SQLError: SQLError: near "RETURNING": syntax error

并尝试使用rowcount方法:

warns.execute("UPDATE warns SET reason=:reason WHERE id=:id AND server=:guild", {'reason': reason, 'id': warn_id, 'guild': guild}).rowcount()

我得到的'AttributeError:'apsw.Cursor'没有属性'rowcount'`


Tags: and方法idexecuteserverupdate语句where
1条回答
网友
1楼 · 发布于 2024-09-30 06:31:59

根据this APSW docs pagechanges()方法在连接对象上,而不是游标对象上

有关获取相同信息的直接SQL查询,请参见this answer。有关该函数的更多详细信息,请参见链接。如果不清楚,只需执行SELECT changes()并像任何其他单个结果查询一样检索结果

相关问题 更多 >

    热门问题