我试图在 Oracle 11g Express 和 SQL Developer 中做一些类似自动增量的事情。
我对 Oracle 知之甚少,而且我对触发器也很陌生。
我尝试运行它,但我不知道如何正确执行它。
CREATE TABLE theschema.thetable
(id NUMBER PRIMARY KEY,
name VARCHAR2(30));
CREATE SEQUENCE theschema.test1_sequence
START WITH 1
INCREMENT BY 1;
create or replace trigger insert_nums
before insert on theschema.thetable
for each row
begin
select test1_sequence.nextval into :new.id from dual;
end;
/
当我尝试创建触发器时,我得到一个屏幕,要求我提供一些“绑定(bind)”。
该对话框只有一个复选框“null”。这是什么意思,我该怎么做
一个正常工作的脚本?
进行这种“自动增量”时要采取什么预防措施?
最佳答案
SQL Developer 似乎认为您正在运行普通的 DML(数据操作)脚本,而不是 DDL(数据定义)。它还认为:new.id
是一个可绑定(bind)变量。
为什么会发生这种情况,我不知道;我无法在 Oracle SQL Developer 2.1 中重现它。
尝试在 theschema
中打开一个新的 SQL 工作表窗口架构并通过按 F5(不是 F9)执行“整个”脚本(不是语句)。
关于oracle - 在 Oracle Express 中创建触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166046/