1

fromtable1に特定の列を挿入するトリガーを作成するためのヘルプが必要です。どうやってやるの?Oracle11GXEを使用しています。table2table1

これが私のコードです:

create or replace trigger AllowanceTrigger
after insert on ex_bulacan
for each row
begin
    insert into allowance (PLANT_ORIGIN,SO_NO, SO_STATUS,SO_REMARKS,DRIVER_NAME)
    values (:new.plant_origin, :new.sales_order_no, :new.status,:new.remarks, :new.driver_name);
end; ​

彼らがのデータを更新した場合はどうなりex_bulacanますか?allowanceテーブルも自動的に変更されますか?

4

3 に答える 3

3

いいえ。 への更新があるときにトリガーを起動する場合は、 と の両方でex_bulacanトリガーを定義する必要があります。テーブルを更新したい場合は、次のようなものが必要ですafter insertafter updateallowance

create or replace trigger AllowanceTrigger
after insert or update on ex_bulacan
for each row
begin
  if( inserting )
  then
    insert into allowance (PLANT_ORIGIN,
                           SO_NO, 
                           SO_STATUS,
                           SO_REMARKS,
                           DRIVER_NAME)
    values (:new.plant_origin, 
            :new.sales_order_no, 
            :new.status,
            :new.remarks, 
            :new.driver_name);
  end if;

  if( updating )
  then
    update allowance
       set plant_origin = :new.plant_origin,
           so_status = :new.status,
           so_remarks = :new.remarks,
           driver_name = :new.driver_name
     where so_no = :new.sales_order_no;
  end if;
end; ​

とはいえ、同じデータ セットを持つ 2 つのテーブルがあるということは、不適切な正規化に問題があることを強く示唆しています。通常、トリガーを使用して 2 つのテーブルのデータを同期させようとするよりも、データ モデルを修正する方がはるかに優れています。

于 2012-03-30T03:29:50.557 に答える
0

いいえ、次のように定義されたトリガーが必要です。

挿入または更新後にトリガー AllowanceTrigger を作成または置換.....

または、挿入用と更新用の 2 つのトリガーを作成することもできます。

于 2012-03-30T02:46:16.730 に答える
0

@e-bacho 2.0 からのコメントで述べたように、更新中には何も起こりません。after updateイベントにもトリガーを指定する必要があります。または、実際のトリガーを実装して、更新も処理します

于 2012-03-30T02:49:36.917 に答える