• ベストアンサー

プライマリキーのみを変更して、複数行insertする方法

こんにちは。 oracle(9i)のテーブルにinsertを行おうと思っているのですが、 困っているので質問させていただきます。 Aテーブルに5カラムあるとします。 カラム1はプライマリキーです。 例えば、1レコードが下記のようになっているとします。 カラム1 カラム2 カラム3 カラム4 カラム5 ---------------------------------------------- 001 あああ いいい ううう えええ プライマリキーに1を足して、他のカラム2から5までは同様の内容で insetをしたいと思っています。 つまり、下記のようなレコードになります。 002 あああ いいい ううう えええ 003 あああ いいい ううう えええ このようにプライマリキーのみを変更して200レコードくらいを insertしたいと思いますが、どのようにすればよいでしょうか。 できれば、PL/SQLかSQLのスクリプトで実行したいと思います。 ご存知の方、ご教授願います。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.2

create table aaa ( "カラム1" number(10), "カラム2" varchar2(10), "カラム3" varchar2(10), "カラム4" varchar2(10), "カラム5" varchar2(10) ); insert into aaa ("カラム1", "カラム2", "カラム3", "カラム4", "カラム5") select rownum, 'あああ', 'いいい', 'ううう', 'えええ' from dict where rownum <= 200 ; 200行が作成されました。 200行以上の行があるテーブルやビューを利用して、 更にrownum疑似列でナンバリングしてあげれば一発で作成可能です。

mas0901
質問者

お礼

ご回答ありがとうございます。 出来ました。

その他の回答 (1)

  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

http://rina.jpn.ph/~rance/om/oracle/hosoku12.html 順序を使うか、SQLで工夫してみてください。

mas0901
質問者

お礼

ご回答ありがとうございます。 確認してみます。