【oracle资料整理】--【9】序列sequence --- 自动编号 ---- IDENTITY (SQLSERVER)

本文介绍了如何在Oracle和SQL Server中创建及使用序列(Sequence),包括设置序列的起始值、步长、最大值和最小值,并展示了序列在表字段自动编号中的应用。通过实例展示了在学生表和教师表中如何利用序列生成唯一编号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序列 sequence  ---  自动编号 ---- IDENTITY (SQLSERVER)
    <1>建立序列
     create sequence seq1; 从1开始 每次自动增加1 没有最大值
    <2>怎么使用
     select seq1.nextval from dual;
        nextval 伪列  下一个值
     select seq1.currval from dual;
        currval 伪列  当前值
     
      create sequence seq2
    start with 1000        --起始值1000
    increment by 2         --步长2
    maxvalue 9000          --最大值9000
    minvalue 900           --最小值900
    cycle                  --循环序列

   1000开始
    每次增加2 一直到9000
    回到900 重新开始

    <3>和表关联作为表的字段的值
     a) create table student(
          xh number(4) primary key, --学号
          xm varchar2(20) not null --姓名
        );

        要求:学号字段 从1000开始每次增加4 最大值9999
         --建立序列
           create sequence xh_seq
                  start with 1000 --从1000开始
                  increment by 4  --每次增加4
                  maxvalue 9999   --最大值 9999
                  ;
         --使用SQL语句关联
         insert into student values
             (xh_seq.nextval,'Mike');
         insert into student values
             (xh_seq.nextval,'John');
         insert into student values
             (xh_seq.nextval,'Rose');
    
      --特点:能产生唯一的值,但是不能保证值在表中的连续性
 
   b) create table teacher(
           teacherxh varchar2(10) primary key,
           teachername varchar2(20)
          );
     要求:教师的编号的格式是TH00001
                         TH00002
                          ....
     
   --建立序列
        create sequence teacher_seq
              maxvalue 99999;
   --
     insert into teacher values ('TH'||
       ltrim(to_char(teacher_seq.nextval,'00000')),
       '张三');
       insert into teacher values ('TH'||
       ltrim(to_char(teacher_seq.nextval,'00000')),
       '李');
      insert into teacher values ('TH'||
       ltrim(to_char(teacher_seq.nextval,'00000')),
       '王'); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值