首页 > 解决方案 > PL/SQL 使用 :new 触发错误错误变量

问题描述

我有两个主表 Student 和 Classes 有多对多的关系,所以我创建了一个中间表。每次我在学生上插入数据时,它都会填充我在这两个触发器上生成的数字:insert_Students_trigger 和 insert_Classes_trigger。只有最后一个触发器给了我一个错误绑定变量 new.Id_Class

知道为什么吗?

CREATE SEQUENCE id_Students_inc start with 1
increment by 1;

CREATE SEQUENCE id_Classes_inc start with 1
increment by 1;

CREATE OR REPLACE TRIGGER insert_Students_trigger BEFORE INSERT on Students
FOR EACH ROW
  BEGIN

    :new.ID_Student := id_Student_inc.nextval;

  END;

CREATE OR REPLACE TRIGGER insert_Classes_trigger BEFORE INSERT on Classes 
FOR EACH ROW
  BEGIN

    :new.ID_Classe := id_Class_inc.nextval;

  END;



CREATE OR REPLACE TRIGGER Students_Classes_trig AFTER INSERT ON Students
FOR EACH ROW
  BEGIN

    INSERT  INTO StudentsClasses (ID_Student, ID_Class)
    VALUES (:new.ID_Student,:new.ID_Class);
  end;

标签: oracleplsql

解决方案


推荐阅读