zoukankan      html  css  js  c++  java
  • oracle 自增长字段

      oracle中,使用序列和触发器可以实现某个字段的自增长.具体过程...

      首先创建一张表

    create table topic(
      tId number(5,0),--自增长字段
      tStr1 varchar2(10),--其他字段1
      tStr2 varchar2(10),--其他字段2
      tStr3 varchar2(10),--其他字段3  
    );
    

     然后创建一个序列

    create sequence topic_id_seq
    increment by 1 --每次增加1
    start with 1  
    nomaxvalue --无最大值
    nocycle; --不循环
    

     创建一个触发器

    create or replace trigger topic_id_trigger 
    before insert
    on topic
    for each row
    begin
    select topic_id_seq.nextval into :new.tId from dual;
    end;
    

     完成后在向表topic中插入数据时,可以

    insert into topic(tStr1, tStr2, tStr3) values('aaa', 'bbb' ,'ccc');
    insert into topic(tStr1, tStr2, tStr3) values('aaa', 'bbb' ,'ccc');
    insert into topic(tStr1, tStr2, tStr3) values('aaa', 'bbb' ,'ccc');
    

     这样topic表中的tId字段的值会一次被赋予1,2,3...

     也可以这样插入

    insert into topic values(topic_id_seq.currval, 'aaa', 'bbb', 'ccc');
    

     关于sequence中的currval和nextval

      currval:返回当前序列的值;

      nextval:增加序列的值,然后返回序列的值;

      首次向表中插入数据时,不可以使用

    insert into topic values(topic_id_seq.currval, 'aaa', 'bbb', 'ccc');
    

      当向表中插入一条数据以后才可以使用.

  • 相关阅读:
    R的卸载和更新安装
    Holt-Winters原理和初始值的确定
    使用excel结合线性规划求解Holt-Winters参数
    Java_Number(装箱和拆箱)
    Java_运算符
    Java_Character类
    Java_String&StringBuilder&StringBuffer类
    Java_数组
    Java_修饰符
    Java_变量类型
  • 原文地址:https://www.cnblogs.com/suiyu/p/2452759.html
Copyright © 2011-2022 走看看