0
我有一個Postgres數據庫中的消息表。 當用戶讀取屬於一組的消息或一組消息時,我收集消息id,並在SELECT查詢後,將讀取標誌更新爲TRUE。Postgres - 組合SELECT和UPDATE
所以這只是兩個簡單的查詢,仍然記憶友好。但我不知道是否可以改進,也許通過結合SELECT
和UPDATE
查詢?我使用PHP/PDO進行數據庫訪問。
我有一個Postgres數據庫中的消息表。 當用戶讀取屬於一組的消息或一組消息時,我收集消息id,並在SELECT查詢後,將讀取標誌更新爲TRUE。Postgres - 組合SELECT和UPDATE
所以這只是兩個簡單的查詢,仍然記憶友好。但我不知道是否可以改進,也許通過結合SELECT
和UPDATE
查詢?我使用PHP/PDO進行數據庫訪問。
有Postgres的UPDATE
聲明RETURNING
clause:
UPDATE msg_tbl
SET read = TRUE
WHERE msg_id = ?
RETURNING *;
但是,這僅僅是一個進步,如果所有的行實際上需要的UPDATE
。如果有一些已經有read = TRUE
會導致空更新結束比SELECT
更昂貴和一個單獨的UPDATE
與另外的WHERE read = FALSE
。
然後,你想要做一個'SELECT'和'UPDATE'的查詢嗎? – Minoru
您不能混合使用Read和Write語句。 –
你可以做到這一點,但沒有真正的收益http://stackoverflow.com/questions/9919056/implementing-an-update-on-select-in-postgres – foibs