oracle 主键自增函数_Oracle 序列自增 ID

oracle 的组件是不能如 mysql 一样设置 autoincrement 的自增条件的,因此使用序列和触发器操作是主键自增

-- 创建序列

create sequence t_comb_match_info_seq start with 1 increment by 1;

--创建触发器

create or replace trigger t_comb_match_info_trigger before insert on t_comb_match_info

for each row

begin

select t_comb_match_info_seq.nextval into :new.id from dual;

end;

触发器的使用

create or replace trigger 名字

before|after

insert|delete|update

on 表名

for each row

begin

sql 语句 ; -- 必须要加分号结束sql语句。

end;

– 结合序列完成表中字段的值自动增加

create or replace trigger t1

before

insert

on ta

for each row – :对于每行数据都会触发该触发器

begin

– :new 新添加到数据库的当前这条数据记录

– :old 要删除或者修改的原数据

– :new.字段 新添加到数据库的当前这条数据中的指定字段

:new.id := s5.nextval; – := 赋值操作

end;

create or replace trigger t2

before

delete or update

on ta

for each row

begin

insert into copyta values(:old.id,:old.name,:old.hir);

end;

– :old 表示的是数据库中原有的数据

– 删除触发器

drop trigger t4;

– sql编程中不能书写 双引号

create or replace trigger t4

before

update or delete

on ta

for each row

begin

if (to_char(sysdate,’DY’)in (‘星期六’,’星期日’))

or (to_char(sysdate,’HH24:MI’) not between ‘09:00’ and ‘18:00’)

then –注意’09:00’中9前面的0不能省略,否则和转换后的日期字符串不匹配

raise_application_error(-20001,’这个时间段是不能修改表信息的’);

end if;

end;

– raise_application_error() oracle中自定义异常的函数

select * from ta;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值