sql >> データベース >  >> RDS >> PostgreSQL

postgresのUPDATERETURNING句から選択できません

    PostgreSQL 9.1より前では、INSERT / UPDATE/DELETEはトップレベルのステートメントとしてのみ使用できました。これが構文エラーが発生する理由です。

    9.1以降では、一般的なテーブル式でデータ変更ステートメントを使用できます。クエリの例は次のようになります:

    WITH updated AS (UPDATE test SET description = 'test' RETURNING id)
    SELECT * FROM test WHERE id IN (SELECT id FROM updated);
    

    変更したばかりのテーブルから選択する場合は注意してください。そうすれば、紛らわしい結果を得ることができます。クエリは同じスナップショットで実行されるため、SELECTはUPDATEステートメントの効果を認識しません。



    1. SQLiteチュートリアル:知っておくべきことすべて

    2. sys.dm_os_wait_statsの主な使用法

    3. Oracleの日付フィールドから日付値のみを抽出するにはどうすればよいですか?

    4. 等しくない<>!=NULLの演算子