2017-02-02 1 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; 
/

Я считаю, что вам лучше исправить имена таблиц и столбцов вместо изменения триггера.

Смежные вопросы