Oracle中创建自动标识列

在Oracle中创建标识列,不同于SQL Server中的是,SQLServer中叫自动标识列entity,而Oracle中叫序列(Sequence)。

在Oracle中创建序列(Sequence)分为如下几步:

  1. 创建一个测试表

    create table TB_TEST(
      USERID number primary key,
      USERNAEM varchar2(128)not null,
      LOGNAME varchar2(128)not null,
      LOGPASSWORD varchar2(128)not null,
      DEPARTID number
    );

  2. 创建一个序列(Sequence),针对主键USERID

    create sequence SEQ_USERID    --创建一个序列
    minvalue 1                     --该序列的最小值是1
    start with 1                  --从1开始递增
    increment by 1                --每次递增1
    nomaxvalue                    --没有最大值
    nocache;                       --没有缓存
  3. 创建一个触发器(Trigger)
    begin
     execute immediate 'create or replace trigger Trigger_USERID  '||
        before insert on "TB_TEST" '||
        for each row '||
     begin  '||
        if inserting then '||
           if :NEW."USERID" is null then '||
              select SEQ_USERID.nextval into :NEW."USERID" from dual; '||
           end if; '||
        end if; '||
     end;'
    ;
    end;
  4. 激活触发器(Enable Trigger)

    alter table "SCOTT"."TB_TEST"enable all triggers;    --SCOTT为当前登录的数据库管理员,TB_TEST为当前操作的表名

  5. 插入数据进行测试

    insert into TB_TEST(USERNAME,LOGNAME,LOGPASSWORD,DEPARTID)values('Mr.Wang','admin','pwd',2);

    ------------测试成功

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值