我刚刚学习Oracle,我了解触发器和序列的概念。我似乎找不到的是它们如何以类似于 SqlServer 身份设置的自动增量方式一起使用。在一个非常简单的示例中,我有一个名为Employees 的表,它具有三个字段(都是必需的):EmployeeID (PK)、FirstName、LastName。我创建了一个序列来获取 ID 字段的下一个值。然后我创建了一个如下所示的触发器:
CREATE OR REPLACE TRIGGER MyFirstTrigger
BEFORE INSERT ON EMPLOYEES FOR EACH ROW
BEGIN
Select EMP_SEQ.NextVal into :NEW.EMPLOYEEID from dual;
END MyFirstTrigger;
/
但是,如何在插入语句中使用它?只有 FirstName 和 LastName 值的插入语句因“没有足够的值”而失败(顺便说一下,我正在使用 Toad)。如果我必须包含 EMP_SEQ.NextVal 作为插入语句的第一个值,那么触发器的意义何在?
希望这是有道理的。提前致谢。