以下 SQL 语句是为 PostgreSQL 9.4.15 编写的,它正在处理这个版本的 PostgreSQL。
WITH const_threshold AS (
SELECT max(id)
FROM temp_menu_items AS val
)
UPDATE temp_menu_items
SET id = id + (SELECT parent_id
FROM temp_menu_items
WHERE parent_id IS NOT NULL
ORDER BY parent_id DESC
LIMIT 1) + (SELECT *
FROM const_threshold)
, parent_id = parent_id + (SELECT parent_id
FROM temp_menu_items
WHERE parent_id IS NOT NULL
ORDER BY parent_id DESC
LIMIT 1) + (SELECT *
FROM const_threshold);
参考文档,PostgreSQL 9.0 中没有更新 https://www.postgresql.org/docs/9.0/static/queries-with.html https://www.postgresql.org/docs/9.4/static/queries- with.html
如何为 PostgreSQL 9.0 重写该语句?
或更一般地说:
有什么方法可以在 9.0 版本的 PostgreSQL 中使用“with update”(或等效)?