sud*_*udo 2 c sqlite sql-update
有没有一种方法可以更新 SQLite3 数据库中的行并获取这些更新的行,而不需要在我经常调用的函数中使用SELECTfollow by UPDATE,而无需进行第二次查询或执行任何比SELECTfollow by慢的操作UPDATE?使用触发器和中间表不算数,因为它仍然比我想要的慢。我正在使用标准sqlite3C 库。
例子:
UPDATE "ACTIVE"
SET confirmed2 = '%d'
WHERE username2 = '%s' AND activity = '%d'
Run Code Online (Sandbox Code Playgroud)
我正在更新“ACTIVE”表的行。我还想检索“username2”和“activity”是某一对值的所有行,以便我可以检查另一列的值“username1”。由于该UPDATE命令已经在查询这些行来更新它们,因此应该(但可能没有)有一种方法可以让我获取这些行而不需要再次查询。我可以获得受影响的行数,但找不到有关获取行数据的任何信息。
从版本 3.35.0 (2021-03-12) 开始,SQLite 包含一个非标准RETURNING 子句,可满足您要查找的内容。
在你的情况下,你只需写:
UPDATE "ACTIVE"
SET confirmed2 = '%d'
WHERE username2 = '%s' AND activity = '%d'
RETURNING *;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5566 次 |
| 最近记录: |