Oracle与Trigger和NextVal的问题



我有一个名为 Employees 的表,其中包含以下数据:

  Employee_ID     Employee_Salary       Employee_HireDate
  100              ----                  -----
  101              ----                  -----

现在我想创建一个触发器,该触发器允许我获取新employee_id并将其递增 1,以便可以将其放入表中。我找到了这样一个例子:

 CREATE OR REPLACE TRIGGER employee_b
 BEFORE INSERT ON employee
 FOR EACH ROW
 DECLARE
      v_employee_id employee.employee_id%TYPE;
 BEGIN
       SELECT employee_ID_SEQ.NEXTVAL
       INTO v_employee_id
           FROM dual;
       :NEW.employee_id:=v_employee_id;
 END;

但是我得到的错误是:

 ERROR at line 4: PL/SQL: ORA-02289: sequence does not exist

我想在插入事件之前使用该触发器,例如:

 INSERT INTO employee(employee_salary,employee_hiredate) VALUES (-----,------)

对此有任何帮助吗?谢谢

运行

create sequence employee_ID_SEQ start with 100 increment by 1;

然后编译触发器并尝试。 读取序列并设置适当的 CACHE etc 值(默认缓存 20 可能没问题,如果你正在做大量的快速插入,你可能想要更多)。

相关内容

  • 没有找到相关文章

最新更新