0

サイト(およびその他...)を精査した後、「RETURNING」値をテーブル、CTEなどに保存できる挿入コマンドの例が見つかりません。これが私がやりたいことです:

WITH insert_rows AS (
  INSERT INTO employers (column1, column2, insert_date)
  SELECT distinct tc.column1, 'any text', now()
  FROM _tmp_employer_updates tc
  LEFT JOIN employers e ON e.column1 = tc.column1
  WHERE e.column1 IS NULL   -- Only insert non-existing employer names
  RETURNING employer.row_uuid, employer.column1, employer.column2;
  )
SELECT * FROM insert_rows; -- table of returning values

CTEを使用してテーブルに「返される」値を格納するための挿入コマンドを取得する方法はありますか? 上記の例を試すと、次のようになります。

エラー: "INSERT" 行 1 またはその近くで構文エラーが発生しました: ... _tmp_inserted_employers AS WITH insert_rows AS ( INSERT INT...

前もって感謝します...

4

1 に答える 1

1

;の後に削除し、列の前のreturning ...エイリアスを削除します(またはに変更します)。それ以外の場合、クエリは適切に見えます。employerreturningemployers

これはsql fiddleの例です。

于 2013-10-29T16:22:36.653 に答える