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

来源:互联网 发布:软件架构重要性 编辑:程序博客网 时间:2024/05/22 08:24
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

0 0
原创粉丝点击