Postgres - 结合SELECT和UPDATE

时间:2013-12-09 13:32:46

标签: php postgresql pdo

我在Postgres数据库中有一个包含消息的表。 当用户读取属于一起的消息或一组消息时,我收集消息ID,并在SELECT查询之后,将读取标志更新为TRUE。

所以这只是两个简单的查询,仍然是内存友好的。但我想知道是否可以通过组合SELECTUPDATE查询来改进它?我使用PHP / PDO进行数据库访问。

1 个答案:

答案 0 :(得分:1)

Postgres UPDATE语句中有RETURNING clause

UPDATE msg_tbl
SET    read = TRUE
WHERE  msg_id = ?
RETURNING *;

但如果所有行实际需要 UPDATE,那只是一种改进。如果某些人已经read = TRUE导致空的更新结果比SELECT更加昂贵,而单独的UPDATE会增加WHERE read = FALSE