oracle数据库自增id的添加及触发器的使用方式

oracle没有mysql的AUTO_INCREMENT功能,所以自增字段主要依靠自增序列来实现,本文简单的利用自增序列加触发器实现自增字段。

create table T_COMPANY
(
    TREEID NUMBER(10)    not null primary key,
    PID    NUMBER(10) default (-1),
    TITLE  NVARCHAR2(32) not null unique
);

创建序列:

create sequence company_tree_id_seq
increment by 1
start with 4705
maxvalue 999999999;

创建触发器:

create or replace trigger company_tree_id_tri
    before insert on T_COMPANY
    for each row when ( new.TREEID is null )
    begin
        select COMPANY_TREE_ID_SEQ.nextval into:new.TREEID from DUAL;
    end;

在更新一条数据时,常常要有更新字段和修改字段,这个用触发器也特别合适如

新增记录时

create or replace trigger export_field_tpl_dld
    before insert on T_EXPORTFIELDSTEMPLATE
    for each row when ( new.UPDATETIME is null )
begin
    select SYSDATE into:new.UPDATETIME from DUAL;
end;

更新记录时

create or replace trigger export_field_tpl_dld
    before UPDATE on T_EXPORTFIELDSTEMPLATE
    for each row when ( new.UPDATETIME is null )
begin
    select SYSDATE into:new.UPDATETIME from DUAL;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值