关于Oracle数据库表中字段修改为自增

1、建一个Sequence

        CREATE SEQUENCE INDEX_POLICY_TBL_SEQ

      INCREMENT BY 1

          START WITH 1

      NOMAXVALUE

      NOCACHE

      NOCYCLE;

     注释:INDEX_POLICY_TBL_SEQ只是一个名字

      INCREMENT BY 意思是每次增加1

      START WITH    意思是从1开始

      NOMAXVALUE  意思是没有上限

      NOCACHE       意思是没有缓存,如果CACHE = 20,则每次在缓存中会有20个ID存储着,提高效率,但是不安全

      NOCYCLE

2、  再建一个触发器trigger把SEQUENCE和A表的字段B联系起来

      CREATE OR REPLACE TRIGGER A_B_AUTO(命名规则 表名_字段名_AUTO)

      BEFORE INSERT ON  A(表名) FOR EACH ROW

      BEGIN

        SELECT TO_CHAR(INDEX_POLICY_TBL_SEQ(之前的序列名).NEXTVAL) INTO :NEW.ID(更改为自增长的字段名) FROM DUAL;

      END A_B_AUTO(命名规则 表名_字段名_AUTO)

参考链接:http://www.cnblogs.com/God-froest/archive/2011/10/25/ORACLE_BASE.html

http://blog.csdn.net/wengyupeng/article/details/2968580

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值