2011-07-17 13 views
0

私は1つのマスターテーブルを持っています。その主キーは他のテーブルの外部キーとして使用されます。私は他のテーブルの定義を変更することはできません "更新カスケード"と私はプライマリキーの値を変更したいので、他のテーブル私は更新する必要があります... 現在、私はplpgsql、 私は大量のデータを処理するので、どうにかしてパフォーマンスが低下します。 誰かが助けてくれますか?単一のクエリで複数のテーブルを更新する方法、または複数の行を異なる値で更新する方法はありますか?ここで一度に複数の行を更新すると、各行ごとに値が異なる

+0

あなたは、Oracleのための1つが 'plsql'と呼ばれながら'、のPostgreSQL手続き言語をplpgsql'isことを知っていますか?この混乱は、満足のいく答えを得られなかった理由を説明するかもしれません。それは本当ですか? –

答えて

0

は、1つのステートメントで複数の行を更新するための一つの選択肢です:

update mytable set 
mycolumn = (case myid when 1 then 'a' when 2 then 'b' ... end) 
where myid in (1, 2, ...); 
+0

私は何百万ものレコードを更新しています。私は他の列の値に基づいて数式を更新していきます。 – shraddha

+0

update table1のように設定col1 = col2ここでcol2 = xvalue; – shraddha

+0

と私も子テーブルを更新する必要があります。 更新childtable1を設定します。col1 = col2(私はplpgsql変数の1つに取り入れています)col1 = table1.col1 更新childtable2 col1 = col2私はplpgsql変数の1つに取り組んでいる)col1 = table1.col1 – shraddha

関連する問題