2017-02-02 6 views
-1

挿入後にアカウントテーブルの金額を更新するトリガーを作成しようとしています。コンパイラのログには、new.saldoが無効な識別子であることだけが示されています。以下は挿入後にアカウントの金額を変更するトリガーを作成します。

は私の二つのテーブルとトリガである

CREATE TABLE account 
(
    anr          NUMBER(8) NOT NULL, 
    ktnr         NUMBER(6) NOT NULL, 
    regdatum        DATE DEFAULT SYSDATE NOT NULL, 
    amount         NUMBER(10, 2) 
); 

CREATE TABLE new_inser 
(
    rownr         NUMBER(9) NOT NULL, 
    pnr          VARCHAR2(11) NOT NULL, 
    anr          NUMBER(8) NOT NULL, 
    am          NUMBER(10, 2), 
    datum         DATE DEFAULT SYSDATE NOT NULL 
); 


CREATE OR REPLACE TRIGGER aifer_new_insert 
    AFTER INSERT 
    ON new_insert 
    FOR EACH ROW 
BEGIN 
    UPDATE account 
     SET amount = new.amount 
    WHERE anr = :new.anr; 
END; 
/
+0

実際に使用しているデータベースで質問にタグを付けてください。 –

答えて

0

あなたがテーブルやカラムの間違った名前を持っています。

CREATE OR REPLACE TRIGGER aifer_new_insert 
    AFTER INSERT 
    ON new_inser /* you created the table without the ending T */ 
    FOR EACH ROW 
BEGIN 
    UPDATE account 
     SET amount = :new.am /* the column in new_inser probably is AM and not AMOUNT */ 
    WHERE anr = :new.anr; 
END; 
/

トリガーを変更する代わりに、テーブルと列の名前を修正する方がよいと思います。

関連する問題