web-dev-qa-db-ja.com

Oracleのテーブルに値を自動的に追加するトリガー

オラクルは初めてです。

同じデータベースの別のテーブルにデータが入力されたときに、テーブルに値を自動的に挿入するのに役立つトリガーを探しています。

私はたくさん試してみましたが、成功しませんでした。これがどのように行われるかを誰かが説明できますか?

1
Anto

これは非常に簡単で、そこには多くのチュートリアルがあります。

以下に、サンプルトリガーを示します。

create table aaaa
( 
  a number
);

create table bbbb
(
  b number
);

create trigger aaaa_aitrig
after insert on aaaa
for each row
begin
  insert into bbbb values ( :new.a );
end;
/

ご参考までに、「:new "は新しく挿入された行への参照であり、各列は個別に参照できます。

テストケース:

SQL> select count(*) from bbbb;

  COUNT(*)
----------
         0

SQL> insert into aaaa values ( 1 );

1 row created.

SQL> select * from bbbb;

         B
----------
         1

SQL>
2
Philᵀᴹ

基本的なAFTER INSERTトリガーが必要なようです。次に、挿入されたデータに:new経由でアクセスできます。何かのようなもの:


CREATE OR REPLACE TRIGGER insert_data
AFTER INSERT
ON OWNER.TABLE
FOR EACH ROW
BEGIN
INSERT INTO OWNER.OTHER_TABLE
(COL1,
COL2,
COL3)
VALUES
(:NEW.COL1,
:NEW,COL2,
:NEW,COL3)
END;
3
Stuart Moore