我想在UPDATE語句中的UPDATE中使用PostgreSQL的RETURNING子句,並且遇到了麻煩。是否將UPDATE中的RETURNING子句用作INSERT查詢子句的查詢子句?
Postgres允許一個查詢子句在INSERT,例如:
INSERT INTO films
SELECT * FROM tmp_films WHERE date_prod < '2004-05-07';
我想用的返回子句從UPDATE作爲INSERT查詢子句,例如:
INSERT INTO user_status_history(status)
UPDATE user_status SET status = 'ACTIVE' WHERE status = 'DISABLED' RETURNING status
我發現的所有Postgres引用都表明,RETURNING子句的行爲與SELECT子句完全相同,但是當我運行類似上述的操作時,我得到以下內容:
ERROR: syntax error at or near "UPDATE"
LINE 2: UPDATE user_statuses
儘管能夠無誤地執行上述查詢的UPDATE部分。
是否將UPDATE中的RETURNING子句用作INSERT查詢子句的查詢子句?
目標是更新一個表,並在可能的情況下使用單個查詢插入另一個表。
CTE現在是9.1和更高版本的PostgreSQL的一部分。 – 2013-08-19 18:21:37