• ベストアンサー

オラクル10で特定のレコードの複写を行うSQLはあるのでしょうか?

オラクル10で特定のレコードの複写を行うSQLはあるのでしょうか? レコードにはユニークキーがあるので、そのまま複写はできないと思いますが、 この場合は他の言語で素直にそのレコードを変数に読み込んで、ユニークキーをセット後、 INSERTで発行する手段しかないのでしょうか?

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

  • ベストアンサー
回答No.1

SQLの普通の文法で、 SELECT結果をINSERTすることができるので可能と思います。 a,b,cというカラムをもつテーブルfooがあり、 aがユニークで、オートインクリメントである場合、 b='xxx'のものだけ複写したいときは、 INSERT INTO foo(b,c) SELECT b,c FROM foo WHERE b='xxx'; で多分出来ると思います。 aがユニークで、自動連番(オートインクリメント)になっている のであれば、aを抜いてINSERTしてあげれば、勝手にaに 次の番号が入るのでは? それ以外はSELECT句に、重複しないようキー生成する 演算が別途必要かと思われます。

関連するQ&A