• 締切済み

シーケンス型で取得した値を別テーブルで利用する方法

シーケンス型で取得した値を別テーブルで利用する方法を別テーブルの設定したい場合,どうすればいいでしょうか. 例えば,商品情報が入っている商品テーブルのidを価格テーブルに結びつけたい場合 ・トランザクション開始 ・商品テーブルにinsert ・コミット ・トランザクション開始 ・シーケンスより最大値を取得 ・価格テーブルにシーケンスより得られた値を含めてinsert ・コミット このままですと価格テーブルの時に何らかの問題でロールバックした場合,商品テーブルには価格テーブルと関係性がないレコードができてしまいます.

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

・トランザクション開始 ・商品テーブルにinsert(nextvalを使用) ・価格テーブルにシーケンスより得られた値を含めてinsert(currvaを使用) ・コミット 要はトランザクションを分割するのが問題なので、ひとつのトランザクションにまとめればいいと思います。

関連するQ&A