gpt4 book ai didi

c - 在没有额外查询的情况下获取 SQLite3 中受 UPDATE 影响的行

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:43 24 4
gpt4 key购买 nike

不是在我经常调用的函数中使用 SELECT 后跟 UPDATE ,有没有办法更新 SQLite3 数据库中的行并获取这些更新的行没有第二个查询或做任何比 SELECT 后跟 UPDATE 慢的事情?使用触发器和中间表不算数,因为它仍然比我想要的慢。我正在使用标准的 sqlite3 C 库。

示例:

UPDATE "ACTIVE"
SET confirmed2 = '%d'
WHERE username2 = '%s' AND activity = '%d'

我正在更新“ACTIVE”表的行。我还想检索“username2”和“activity”是某对值的所有行,以便我可以检查另一列的值“username1”。由于 UPDATE 命令已经在查询这些行以更新它们,因此我应该(但也许没有)一种方法来获取这些行而无需再次查询。我可以获得受影响的行的 数量,但我找不到任何有关获取行数据的信息。

最佳答案

从版本 3.35.0 (2021-03-12) 开始,SQLite 包含一个非标准的 RETURNING clause可以满足您的需求。
在你的情况下,你只需写:

UPDATE "ACTIVE"
SET confirmed2 = '%d'
WHERE username2 = '%s' AND activity = '%d'
RETURNING *;

关于c - 在没有额外查询的情况下获取 SQLite3 中受 UPDATE 影响的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24030383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com