【发布时间】:2012-08-23 08:40:42
【问题描述】:
我试图在 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;
/
当我尝试创建触发器时,我得到一个屏幕,要求我提供一些“绑定”。 该对话框只有一个复选框“null”。这是什么意思,我该怎么做 一个可以正常工作的脚本?
在进行这种“自动增量”时要采取什么预防措施?
【问题讨论】:
-
我添加了 SQL-Developer 标签,因为这段代码看起来不错;它要求你填写一个绑定变量,所以我假设你必须关闭一些设置......但我不知道是什么。
-
顺便说一句,从 Oracle 11 开始,您可以直接引用序列。这意味着您可以在不使用 SELECT 的情况下编写
:new.id := test1_sequence.nextval。 -
同样的问题!谢谢你的帖子!
-
在 SQL Developer 4.2.0.x 中仍然存在问题,并且给出的解决方法仍然成功。
标签: oracle oracle11g oracle-sqldeveloper