2017-02-16 6 views
-2

「はcollegetable」という名前のテーブルを作成します「CGPA」とコードを使用して一発でこの列の値を追加しようとしました:PostgreSQLでは既存のテーブルに新たに挿入された列に値を追加9.3

WITH col(stid, cgpa) as 
( VALUES((1121,8.01), 
      (1131,7.12), 
      (1141,9.86)) 
)   
UPDATE collegetable as colldata 
SET cgpa = col.cgpa 
FROM col 
WHERE colldata.stid = col.stid; 

とエラーを得た:

ERROR:operator does not exist:integer=record 
LINE9:where colldata.stid=col.stid; 
HINT:No operator matches the given name and arguement type.you might need to add explicit type casts. 

plsを解決するためのplsのヘルプが事前にあります。

+0

のhttpを参照してください。 com/questions/285551/why-may-i-not-upload-images-of-code-on-ask-a-question/285557#285557 –

+0

** [編集] **あなたの質問と追加'create table'ステートメントとしてのテーブルの完全な定義、いくつかのsaそのデータに基づいて予想される出力を計算します。 [**フォーマットされたテキスト**](http://stackoverflow.com/help/formatting)、** **スクリーンショットはありません**(http://meta.stackoverflow.com/questions/285551/why-may -i-not-upload-code-on-so-ask-a-question/285557#285557) –

答えて

0

with句のみ名前の列のないデータ型を定義://meta.stackoverflow:詳細については

with col (stid, cgpa) as (
    ... 
) 
update ...; 

tutorialfull reference

+0

がデータ型を削除して試したが、それでも エラーが表示されます:演算子が存在しません:整数=レコード LINE9:where colldata.stid = col.stid; HINT:指定された名前と引数型に一致する演算子がありません。明示的な型キャストを追加する必要があるかもしれません。 – Sathya

+0

あなたはCTE内に余分な括弧を持っています:それはちょうど 'VALUES(xxx、yyy)、(aaa、bbb)、...'などです。 –

+0

ありがとうRay O'Donnell – Sathya

関連する問題