2016-12-21 5 views
0

returning *がなくても、PostgreSQL文から常にJSON表現を返すクエリを探しています。ここでは例です:PostgreSQL文(結果を返さない文でも)のrow_to_json(行)を呼び出します。

WITH result AS (insert into users("name", age) values('drew', 42)) 
select row_to_json(row) from result as row; 

今私は取得しています:

WITH query "result" does not have a RETURNING clause 

result || {}を言うためにとにかくはありますか?

答えて

0

row_to_jsonの使用に関係する問題はなく、むしろINSERTステートメントをCTEに埋め込むことを試みていると思います。次のコードは、私のPostgresの上で問題なく走った:あなたはINSERTなしCTEを使用するか、最初のごusersテーブルにINSERTを行い、その後、CTEを作成する必要がありますいずれか

"{"column1":"matt","column2":33}" 
"{"column1":"drew","column2":42}" 

:どの出力これを

WITH result AS (VALUES ('matt', 33), ('drew', 42)) 
select row_to_json(row) from result as row; 

その後。

2

使用returning insert文の結果を得るために:

with result as (
    insert into users("name", age) 
    values('drew', 42) 
    returning * 
) 
select row_to_json(row) 
from result as row; 
+0

これは、SQLクエリを定義したユーザですので、私は戻っては – Matt

+1

Insert文を使用することを前提に、returning' 'せずにデータを返すことはありませんすることはできませんだからあなたは何も選択肢がありません。 – klin

+1

@Mattただ一つの方法があります:解析し、検証してください。 –

関連する問題