我刚刚学习Oracle,并了解触发器和序列的概念。我似乎无法找到的是它们如何以类似于SqlServer Identity设置的自动增量方式一起使用。在一个非常简单的例子中,我有一个名为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作为插入语句的第一个值,那么触发器的重点是什么?
希望这是有道理的。提前致谢。
太棒了。这正是我需要知道的。这非常简单,但我无法在Internet或Oracle用户指南中找到任何内容。也许假设人们知道这一点。谢谢。 – 2010-10-19 12:58:30