首先创建数据表EVALUATETABLESRECORD
方法一:使用代码实现
新建sequence
CREATE SEQUENCE SQ_EVALUATETABLESRECORD
increment by 1
start with 1
nomaxvalue
minvalue 1
nocycle
nocache
解析:
CREATE SEQUENCE SQ_EVALUATETABLESRECORD
//SQ_EVALUATETABLESRECORD为sequence的名字,没有限制,但是下面使用时,要和上面一直
increment by 1 //自增1
start with 1 //由1开始
nomaxvalue //没有最大值
minvalue 1 //最小值从1开始
nocycle //不循环
nocache //没有缓存
新建trigger触发器
create or replace trigger "TR_EVALUATETABLESRECORD"
before insert on "SZ"."EVALUATETABLESRECORD"
for each row
begin
if :new."ID" is null then
select "SZ"."SQ_EVALUATETABLESRECORD".nextval into :new."ID" from dual;
end if;
end;
解析:
create or replace trigger "TR_EVALUATETABLESRECORD"
//"TR_EVALUATETABLESRECORD"触发器的名字
before insert on "SZ"."EVALUATETABLESRECORD"
//"SZ"."EVALUATETABLESRECORD" 连接的数据库的 用户名.表名
for each row
begin
select "SZ"."SQ_EVALUATETABLESRECORD".nextval into :new."ID" from dual;
//"SZ"."SQ_EVALUATETABLESRECORD" 用户名.触发器名
//注意:new前面由空格
//ID为自增字段
end;
注意:
上面的sequence和trigger的代码适用于刚新建的表,没有数据
如果有数据,则需要调整sequence设置中的cache参数
比如,表中有3条数据,需要将上面的nocache替换成cache 3
生成成功后查看sequence和trgger
点击trigger
右键新建的trigger,点击view
查看编写的trigger
查看sequence同理
点开sequence文件见,找到新建的sequences,右键,view就可以了
但是查看的sequence不是代码,而是以参数的形式出现的
上面提到的,如果数据库表中原来有数据,需要修改的就是next number参数,如果表中有3条数据,则next number设置为4
方法二:手动新建sequence和trigger
右键sequences文件夹,新建new
owner填入用户名
name填入将要新建的sequence的名称
min value 最小值
max value 最大值
start with初始值,从多少开始
increment by 自增间距是多少,每次增加多少
cache size缓存
cycle选项 是否循环
order选项
填写完成后,点击下方apply即可
如果想要查询新建后的sql语句,则点击view sql按钮
新建trigger
右键点击triggers文件夹,新建new
trigger name新建触发器名称
fires 选择before
event 选择事件,如更新update,插入insert,删除delete,此处选择insert
table or view选择数据表
statement level(可选可不选)
点击ok
弹出代码框,按照上面方法一中代码修改
编写完成后,全选代码,执行代码
左侧目录中triggers文件夹中就会出现新建的触发器。