Oracle 自增

Oracle 自增
1.创建表
create table test1( test1id number, name varchar2(50) )
2.创建序列

-- 创建序列
create sequence sq_items
-- 自增步长
increment by 1
-- 始值
start with 49 
-- 没有最大值
nomaxvalue 
-- 不循环
nocycle; 



create sequence sq_items2
-- 自增步长
increment by 1
-- 始值
start with 49 
-- 没有最大值
nomaxvalue 
-- 不循环
nocycle; 


3.创建触发器

--创建触发器,将序列与表的字段关联起来,并实现自增
create trigger itmes_trig1
before insert on test1
 referencing old as old new as new for each row
declare
begin 
select sq_items.nextval into :new.test1id from dual;
end itmes_trig1;

4.执行添加操作

insert into test1 values(0,'小明');

5.结果
在这里插入图片描述

在执行触发器中遇到了一个错误:

TRIGGER HOUSETRADING1030.ITMES_TRIG1 编译错误

错误:PLS-00103: 出现符号 "?"在需要下列之一时:
( begin case declare exit for
goto if loop mod null pragma raise return select update while
with
<< continue close current delete fetch lock
insert open rollback savepoint set sql execute commit forall
merge pipe purge
符号 “?” 被忽略。
行:6
文本:?select sq_items.nextval into :new.test1id from dual;

解决方法:
前面可能是全角的空格
清除空格后的代码

--创建触发器,将序列与表的字段关联起来,并实现自增
create trigger itmes_trig1
before insert on test1
 referencing old as old new as new for each row
declare
begin select sq_items.nextval into :new.test1id from dual;end itmes_trig1;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值