在 PostgreSQL 中,可以使用以下两种方法替代 MongoDB 的 findAndUpdatefindAndReplace 功能,并返回更新之前的状态:

  1. 使用 RETURNING 子句:
UPDATE table_name
SET column1 = new_value1, column2 = new_value2, ...
WHERE condition
RETURNING *;

在上述语句中,table_name 是要更新的表名,column1, column2, ... 是要更新的列名和对应的新值。WHERE 子句用于指定更新的条件。RETURNING * 用于返回更新之前的所有列数据。

  1. 使用 WITH 子句和临时表:
WITH updated_rows AS (
    UPDATE table_name
    SET column1 = new_value1, column2 = new_value2, ...
    WHERE condition
    RETURNING *
)
SELECT * FROM updated_rows;

在上述语句中,table_name 是要更新的表名,column1, column2, ... 是要更新的列名和对应的新值。WHERE 子句用于指定更新的条件。WITH 子句创建一个临时表 updated_rows,其中包含更新之前的所有列数据。最后,通过 SELECT * FROM updated_rows 返回更新之前的状态。

请根据具体的表名、列名和条件进行相应的替换和调整

postgresql要替换mongo实现findAndUpdate和findAndReplace功能返回更新之前的状态

原文地址: https://www.cveoy.top/t/topic/hIET 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录