oracle数据库建表、修改字段名称类型、增加字段、ID自动增长写法

oracle建表:

       create table INDEX_POLICY_TBL
      (
       ID NUMBER(10) NOT NULL PRIMARY KEY,
       POLICY_ID VARCHAR2(64) NOT NULL,
       ALARM_COUNT NUMBER(10) NOT NULL
      )

      执行即可。

增加字段:

      ALTER TABLE TABLE_NAME ADD(COLUMN_NAME COLUMN_TYPE[,COLUMN_NAME COLUMN_TYPE]);

      ADD后面括号里面的是字段名+空格成对出现,可以有多对

修改字段名称:

      ALTER TABLE TABLE_NAME RENAME COLUMN OLD_COLUMN_NAME TO NEW_COLUMN_NAME

      OLD_COLUMN_NAME 、NEW_COLUMN_NAME指旧的字段名以及新的字段名

修改字段类型:

      ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME COLUMN_TYPE

ORACLE 中ID字段自动增长写法:

   create table INDEX_POLICY_TBL
        (
         ID NUMBER(10) NOT NULL PRIMARY KEY,
         POLICY_ID VARCHAR2(64) NOT NULL,
     ALARM_COUNT NUMBER(10) NOT NULL
     )

        先建这样一个表。

        再建一个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

      再建一个触发器trigger把SEQUENCE和INDEX_POLICY_TBL的ID联系起来

      CREATE OR REPLACE TRIGGER INDEX_POLICY_TBL_ID_AUTO

      BEFORE INSERT ON INDEX_POLICY_TBL FOR EACH ROW

      BEGIN

        SELECT TO_CHAR(INDEX_POLICY_TBL_SEQ.NEXTVAL) INTO :NEW.ID FROM DUAL;

      END INDEX_POLICY_TBL_ID_AUTO

   注释:INDEX_POLICY_TBL_ID_AUTO是触发器trigger的名字,可以随便取,但是最好取与ID所在表相关的名字,这个名字有长度限制的,不能太长,不然执行时ORACLE会报错

 

                                   ----->froest

posted on 2011-10-25 21:15  Kahuna  阅读(17634)  评论(0编辑  收藏  举报

导航