アプリ版:「スタンプのみでお礼する」機能のリリースについて

Oracleのトリガーについて質問です。
旧システムから新システムへデータ移行を行おうとしているのですが、
新システムではNEWテーブル(仮名)が新規で追加されています。

データ移行の方法として、旧システムのダンプファイルをエクスポートし、
新ステムにユーザを再作成後インポートしました。

その後、あらかじめ新システムでNEWテーブルのみテーブル指定のエク
スポートを行っていたダンプファイルより、追加でインポートを行いました。

これでデータ移行完了と思っていたのですが、NEWテーブルのデータはトリガー
により生成されるらしいのですが、どのタイミングで生成されるのでしょうか?

データ移行完了時はデータ0件です。
NEWテーブルをインポートする順番が逆なのでしょうか?
それともインポートではトリガーは起動しないのでしょうか?
または、トリガーの仕組みが消えている(?)のでしょうか?
(納入先に行かないと確認できない状態なので実際のデータベースが確認できません…)

Oracleはあまり詳しくないため、わかりづらい質問かもしれませんが
よろしくおねがいします。

【環境】
Oracle11g R2
Windows2008Server

A 回答 (1件)

話がおかしいと思います。



恐らく、
 1.本番環境旧システムのスキーマをエクスポート
 2.開発環境新システムのNEWテーブルをエクスポート
 3.本番環境新システムのスキーマへ1.のダンプファイルをインポート
 4.本番環境新システムのスキーマへ2.のダンプファイルをインポート

という流れかなと思います。

この時、NEWテーブルがトリガーからデータ登録が行われるならば、
インポート後は0件でも問題ないと思います。
開発環境で作成されたデータが本番環境に混ざってはいけませんからね。

しかし、NEWテーブルが今回追加され、トリガーによってレコードが挿入される
テーブルとしたら、足りないものがあります。


それは、『トリガーの生成』。


どこかのテーブルが更新された時に、NEWテーブルを更新するトリガーを
追加、もしくは変更しているはずです。
これは上記1.2.3.4.をやっても反映されません。

そのトリガーの所在を明確にした上で、4.を適用後にトリガーのCREATE文を
本番環境へ走行させる必要があります。
    • good
    • 0
この回答へのお礼

インポートではトリガーは作成されないのですね。
データ移行の手順はご回答通りです。トリガーのcreateは行っておりませんでした。
4の時点で作成されるのかなと思っていました。
トリガーの存在を確認すべきでしたね。
トリガーのcreateを行ってみます。
ありがとうございました。

お礼日時:2013/07/30 08:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!