阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

手机号码,快捷登录

老司机
查看: 1214|回复: 0

Oracle 数据库实现自增长列

[复制链接]
  • TA的每日心情
    郁闷
    2012-8-20 14:41
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    发表于 2011-12-19 11:03:34 | 显示全部楼层 |阅读模式
    SqlServer 和MySql都有自增长的功能,而Oracle必须接结合sequence序列(一般用于主键列),并使用触发器才能够实现自动增长,具体步骤如下:
    一、            建表
    create table list(id number,name varchar2(50));
    二、            创建序列
    1.        create sequence list_seq
    2.        minvalue 1
    3.        maxvalue 99999999999999
    4.        start with 1
    5.        increment by 1
    6.        cache 20
    7.        order;
                                     
    三、            创建触发器
    1.        Create or replace trigger list_tg
    2.        Before insert on list
    3.        For each row
    4.        Begin
    5.        Select list_seq.nextval into :new.id from dual;
    6.        End;
    四、            插入数据
    Insert into list values(’’,’aaa’);
    Insert into list values(’’,’bbb’);
    Select * from list ;
    结果为:
       ID     name
       1       aaa
       2       bbb
    在Oracle 10g  的em 操作界面按照上图配置即可实现自增长序列,数据库端设置完成;
    在插入数据时自增长字段可由空值’ ’或null代替,如果insert 语句中列出了所插入的字段,如insert into list(name) values(’aaa’),则增长字段不用写 ;如模板所示为一简单的表单,ID字段绑定数据库中的自增长列,BS填报时,id字段不输入若输入任意数字时,数据库中都按照自增长的规律进行赋值,如下图所示:

    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表