ITPub博客

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

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

Oracle 作者:yunzj 时间:2012-05-17 09:32:07 0 删除 编辑

 

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会报错

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22945547/viewspace-1117387/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-11-29