PL/SQL连接oracle数据库,实现ID字段自增(代码创建+手动创建)

首先创建数据表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文件夹中就会出现新建的触发器。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值