创建Oracle序列触发器 [英] Creating Oracle Sequence Trigger

查看:100
本文介绍了创建Oracle序列触发器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建序列触发器,但是在SQL Developer中执行触发器创建sql时发生错误.我不明白,实际上一切看起来都很好.我在下面分享了详细信息,请帮助我,谢谢.

I'm trying create seuqunce trigger but error occurs when I executing the trigger create sql in SQL Developer. I don't understand, actually everything looks fine. I share the details below, please help me, thanks.

我的触发器sql:

CREATE OR REPLACE TRIGGER "TRIGGER1" BEFORE INSERT ON ACCOUNTS
FOR EACH ROW
 WHEN (new."ID" IS NULL) 
BEGIN
  SELECT ACCOUNTS_SEQ.NEXTVAL 
  INTO :new."ID" 
  FROM dual;
END;
/

错误说明:

Error starting at line : 5 in command -
CREATE OR REPLACE TRIGGER "TRIGGER1" BEFORE INSERT ON ACCOUNTS
FOR EACH ROW
 WHEN (new."ID" IS NULL) 
BEGIN
  SELECT ACCOUNTS_SEQ.NEXTVAL 
  INTO :new."ID" 
  FROM dual
Error report -
SQL Command: trıgger "TRIGGER1"
Failed: Warning: completed with warning

Error starting at line : 12 in command -
END
Error report -
Unknown Command

推荐答案

尝试一下:

CREATE OR REPLACE TRIGGER TRIGGER1
BEFORE INSERT ON ACCOUNTS
FOR EACH ROW
  WHEN (new.ID IS NULL)
BEGIN
  :new.ID := ACCOUNTS_SEQ.NEXTVAL;
END;
/

您的序列应如下所示:

CREATE SEQUENCE ACCOUNTS_SEQ 
  START WITH 1 
  INCREMENT BY 1;

这篇关于创建Oracle序列触发器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆