2017-08-01 3 views
0

Greenplumの内部テーブルに対してinsert、update、deleteステートメントを実行したいのですが、外部テーブルを使用して内部テーブルのデータを更新したいとします。私はエラーを取得し、このテーブルにアップデートを実行すると 私の内部テーブルのDDLは create table test ( "ID" bigint, "a" char(10), "b" char(10), primary key ("a") )DISTRIBUTED BY ("a"); Greenplumでアップデートを実行するには?

ある

  • ERROR:配布の列を更新UPDATE文をprallelizeすることはできません* 私は先に行く必要がありますどのように?
+0

"a"列を更新することはできません。これはデータの配布方法であるためです。また、テーブルから主キーを削除することをお勧めします。それは必要ではありません。 –

+0

私はGreenplumでデータウェアハウスを作成しようとしていますので、主キー制約を与えたいのですが、制約を定義するにはどうすればいいですか – vkumar

+0

主キー制約をどのように定義しますか? alter table test主キーの追加(a);しかし、元の質問は更新する方法です。配布列を更新することはできませんので、配布する別の列を選択するか、その列を更新しないでください。 –

答えて

0

Anuraagは、まずあなたの質問に答えが、あなたのテーブルを更新するための別の方法もある

たが、ランダムに分布し、あなたの分散句 ALTER TABLEテーブル名セットを変更。

第二に、あなたの更新スクリプトを実行

第三に、再設定したり、分散句 ALTER TABLEテーブル名はで(a)の分散セット。

セグメント間でレコードを再シャープする テーブルテーブル名を変更(reorganize = true)します。

関連する問題