精华内容
下载资源
问答
  • oracle 自增列

    千次阅读 2012-12-07 10:45:00
    oracle 自增列 oracle没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现。 (1)createtable t_client ( id number(8) primarykey, pid number(4) notnull, name varchar2...

    oracle 自增列

    oracle没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现。
    (1)createtable t_client (
    id number(8) primarykey,
    pid number(4) notnull,
    name varchar2(30) notnull,
    client_id varchar2(10),
    client_level char(3),
    bank_acct_no varchar2(30),
    contact_tel varchar2(30),
    address varchar2(30),
    zip_code varchar2(10),
    is_leaf char(1) default'y'check (is_leaf in('y','n')),
    is_client char(1) default'n'check (is_client in('y','n')
    ));

    (2)假设关键字段为id,建一个序列,代码为:
    create sequence seq_pk_t_client_id --这里的名称以seq_pk_打头,表示用于PK,以区别于其他非自增,不是约定俗成,只是我的习惯
    minvalue 1
    maxvalue 99999999--这里的长度与表定义中的长度一致
    start with1
    increment by1
    nocache
    order;
    (3)建触发器代码为:
    CREATEORREPLACETRIGGER trg_t_client_id
    BEFORE INSERTON t_client
    FOR EACH ROW
    BEGIN
    SELECT seq_pk_t_client_id.nextval INTO :new.id FROM dual;
    END;

    展开全文
  • ORACLE自增列

    2020-08-18 13:49:20
    1、创建表 2、创建序列 ...increment by 1 //每次自增1 start with 1 //从1开始 nocache; //不需要缓存 3、创建触发器 create or replace trigger USRMAIN_TG_INSERTID before insert on USRMAIN

    1、创建表
    在这里插入图片描述
    2、创建序列

    create sequence USRMAIN_USRID  //序列名称
    minvalue 1             
    nomaxvalue           
    increment by 1        //每次自增1
    start with 1         //从1开始
    nocache;  			//不需要缓存
    

    3、创建触发器

    create or replace trigger USRMAIN_TG_INSERTID
    before insert on USRMAIN for each row WHEN (NEW.USRID IS NULL)
    begin
    select USRMAIN_USRID.nextval into:NEW.USRID from dual;
    end;
    
    //注意:NEW.USRID需要对应表的字段
    
    展开全文
  • Oracle自增列

    2014-03-19 09:21:00
    最近在做Oracle的项目,由于以前没有接触过Oracle的开发,遇到了不少的问题,比如给Oracle表添加自增列,与SQL Server就不同。 Oracle没有自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现...

    最近在做Oracle的项目,由于以前没有接触过Oracle的开发,遇到了不少的问题,比如给Oracle表添加自增列,与SQL Server就不同。

     

    Oracle没有自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现。

    先建一个测试表了:

    create table userlogin
    (

         id   number(6) not null,

         name   varchar2(30)   not null primary key

    )

    tablespace users

    /

     

    第一步:创建SEQUENCE


    create sequence userlogin_seq increment by 1 start with 1 minvalue 1 maxvalue 9999999999999 nocache order;


    第二步:创建一个基于该表的before insert 触发器,在触发器中使用刚创建的SEQUENCE


    create or replace trigger userlogin_trigger
    before insert on userlogin
    for each row
    begin
          select   userlogin_seq.nextval   into:new.id from sys.dual ;
    end;

    /

     

    第三步:在userlogin表中测试

    写个insert语句,插入一条记录,看ID字段自增了没,自增则OK啦。   

    转载于:https://www.cnblogs.com/wangcq/p/3610591.html

    展开全文
  • oracle 自增列

    千次阅读 2009-08-10 13:23:00
    由于Oracle不像SQL Server 那样系统自带自增列,所以如果需要使用自增列或者把SQL Server中的数据导入时,就需要自己创建自增列 Oracle的自创自增类由序列(sequence)和触发器(trigger)共同完成,所以需要创建一...

    由于Oracle不像SQL Server 那样系统自带自增列,所以如果需要使用自增列或者把SQL Server中的数据导入时,就需要自己创建自增列

    Oracle的自创自增类由序列(sequence)和触发器(trigger)共同完成,所以需要创建一个序列和触发器

    /*创建自增列(由序列和触发器共同完成)*/

    /*创建序列*/
    create sequence s_id increment by 1 start with 1 nomaxvalue nocycle;
    /*创建触发器*/
    create or replace trigger myTrigger
      before insert on myTable
      referencing old as old_value new as new_value
      for each row  
    begin  
      new_value.userid= s_id.nextval;  
    end;  

    cata0是表名,cata0_id是需要自增的字段!
    CREATE SEQUENCE SEQ_cata0
    INCREMENT BY  1
    START WITH  1
    MAXVALUE  9999999
    /
    CREATE TRIGGER TRG_cata0 BEFORE
    INSERT  ON cata0
    FOR EACH ROW begin
       SELECT SEQ_cata0.NEXTVAL
         INTO :NEW.cata0_ID
         FROM DUAL;
    End TRG_cata0;

    new.cata0_ID在insert触发器中表示的是新增加的cata0_ID的值,new表示新增加的一行数据,如果是针对的是update的触发器还有old, old表示的是更新前的一行数据,new表示的是更新后的一行数据,old.cata0_ID表示更新前cata0_ID的值,new.cata0_ID表示更新后cata0_ID的值。

    展开全文
  • oracle自增列

    2014-08-06 15:37:19
    1、新建一个自增序列
  • Oracle 自增列

    2013-07-09 11:31:00
    --创建自增方法 --DROP SEQUENCE EBSIG_LECAKE.A_REGION_ID_SEQ; CREATE SEQUENCE EBSIG_LECAKE.A_REGION_ID_SEQ START WITH 21 MAXVALUE 999999999999999999999999 MINVALUE 1 NOCYCLE CACHE 20 ....
  • 关于 Oracle自增列

    2020-06-12 14:44:05
    1.Oracle 查询自增列当前值 SELECT * FROM USER_SEQUENCES WHERE SEQUENCE_NAME='SEQ_MER'; 2. ---创建自增序列 -- Create sequence create sequence SEQ_MER minvalue 1 maxvalue 999999999999 start with 1101 ...
  • Oracle自增列创建方法

    2015-11-10 17:46:00
    最近在做Oracle的项目,由于以前没有接触过Oracle的开发,遇到了不少的问题,比如给Oracle表添加自增列,与SQL Server就不同。 Oracle没有自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现...
  • MYSQL和ORACLE自增列的区别

    千次阅读 2016-08-14 11:25:57
    1. 自动增长的数据类型处理  MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。...oracle自增方式: --第一步:创建SEQUENCE  create sequence cmdb.M_MODULE_seq increment by
  • oracle 自增列的实现

    2008-09-09 11:03:50
    由于Oracle不像SQL Server 那样系统自带自增列,所以如果需要使用自增列或者把SQL Server中的数据导入时,就需要自己创建自增列 Oracle的自创自增类由序列(sequence)和触发器(trigger)共同完成,所以需要创建...
  • oracle 自增列设置

    2015-08-14 12:16:00
    序列 create sequence sq_1 minvalue 1 maxvalue 9999999999999999999999999999 start with 1 increment by 1 cache 2000; 触发器 create or replace trigger 触发器名字 ... for ea...
  • oracle 自增列创建方法

    2009-08-07 17:10:17
    oracle没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现。  先建一个测试表了: create table userlogin(  id number(6) not null,  name varchar2(30) not null primary ...
  • oracle自增列的问题

    2012-09-26 09:22:51
    --创建表 create table test ( id number primary key, name varchar2 not null ); --创建序列 create sequence test_seq start with 1 increment by 1;... create or replace trigger tri_test_zz ...
  • 序列 --创建序列的语法 -- create sequence [ user . ] sequence_name [ increment by n ] ...触发器配合序列实现自增 https://blog.csdn.net/zoucui/article/details/79347286
  • 一张表的主键 ,怎么设置可以让它的值为00-99之间 其中10以前的数为 01,02,03,04......
  • --:new.id id 为需要自增 end;   -------------------------------------------------------------创建表空间 create tablespace tsName datafile 'd:\??.dbf' size 10M autoextend on next 10M ...
  • 序列、触发器、自动增量
  • oracle 中创建自增列的存储过程1.存储过程如下:create or replace procedure pr_CreateIdentityColumn(tablename varchar2,columnname varchar2)asstrsql varchar2(1000);beginstrsql := ’create sequence seq_’|...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,399
精华内容 8,159
关键字:

oracle自增列