带有触发器和nextval的oracle问题

时间:2012-11-12 20:48:24

标签: oracle triggers 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 (-----,------)

对此有何帮助? 感谢

1 个答案:

答案 0 :(得分:1)

运行

create sequence employee_ID_SEQ start with 100 increment by 1;

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