- ベストアンサー
PL/pgSQLを使用してデータ移行がしたい。
Ver8.3.3 現行のテーブルの値を、別テーブルへ移行したいのですが、 コーディングのしかたが良く解りません。 ex) Aテーブル ID ビット合計1 ビット合計2 Bテーブル ID ビット合計データ種別 ビット合計 1レコードの物を、2レコードに変換する具合です。 サンプル等が記載されているサイト等を教えて頂ければ幸いです。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
テーブルAとBは、同じサーバにあるのでしょうか? CSVファイルなどの媒介は、必要ないのでしょうか? データ件数は、どのくらいあるのでしょう? insert ~ selectの1文で可能なのですが、ストアドプロシジャでやりたいでしょうか? データ件数が多量の場合、select文で条件検索し、何回かに分割して行うこともできます。 insert into B select id,1,bsum1 from A union select id,2,bsum2 from A
その他の回答 (2)
- chukenkenkou
- ベストアンサー率43% (833/1926)
具体的なアドバイスが欲しいなら、具体的な質問にしましょう。 Aテーブルでは、ID列でユニークになるのですか? Bテーブルでは、同じID列値を持つ行ができる訳ですよね? 「ID」列と「ビット合計データ種別」で、ユニークになるのですか? 「ビット合計データ種別」には、「ビット合計1」か「ビット合計2」かを識別する値が入るのですよね?アドバイスする側で推測しろっていうのは乱暴で、無駄なやり取りをしてしまうこともあります。
補足
早々のレス有難う御座います。 >アドバイスする側で推測しろっていうのは・・・ そういうつもりではなかったのですが、説明不足でした。 ID列は、ユニークキーです。 ID列 + ビット合計データ種別で、ユニークです。 単純に1レコードの物を、2レコードに分割したいのです。 COBOL、PL/1、RPG、VB、C、JAVA、ABAP4等にて分割しても良いのですが、SQLのプロシージャ言語を用いて分割したいのです。
- nora1962
- ベストアンサー率60% (431/717)
とりあえずマニュアルを http://www.iterasi.net/openviewer.aspx?sqrlitid=mykbgkas5kc26ps4hchs7w 後、ここのあたりとか http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/psql_k24.htm 書籍なら http://www.7andy.jp/books/detail/-/accd/31796862 http://www.7andy.jp/books/detail/-/accd/31174714 あたりを参考になさっては。
お礼
nora1962さん、早々のレス有難う御座いました。
お礼
chukenkenkouさん、レス有難う御座います。
補足
ストアドプロシジャを使用しないと出来ないと思っていました。 1文で可能なら言うこと無いです。 2つのテーブルは、同一サーバにあります。 CSVファイルの媒介は不要です。 レコード数は、約5万レコードです。 実際は、1レコードを5分割します。