在 PostgreSQL 中,可以使用以下两种方法替代 MongoDB 的 `findAndUpdate` 和 `findAndReplace` 功能,并返回更新之前的状态:\n\n1. 使用 `RETURNING` 子句:\n\nsql\nUPDATE table_name\nSET column1 = new_value1, column2 = new_value2, ...\nWHERE condition\nRETURNING *;\n\n\n在上述语句中,`table_name` 是要更新的表名,`column1`, `column2`, ... 是要更新的列名和对应的新值。`WHERE` 子句用于指定更新的条件。`RETURNING *` 用于返回更新之前的所有列数据。\n\n2. 使用 `WITH` 子句和临时表:\n\nsql\nWITH updated_rows AS (\n UPDATE table_name\n SET column1 = new_value1, column2 = new_value2, ...\n WHERE condition\n RETURNING *\n)\nSELECT * FROM updated_rows;\n\n\n在上述语句中,`table_name` 是要更新的表名,`column1`, `column2`, ... 是要更新的列名和对应的新值。`WHERE` 子句用于指定更新的条件。`WITH` 子句创建一个临时表 `updated_rows`,其中包含更新之前的所有列数据。最后,通过 `SELECT * FROM updated_rows` 返回更新之前的状态。\n\n请根据具体的表名、列名和条件进行相应的替换和调整。


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

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