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
爱情终将消失于茫茫的时间洪流之中,沉淀于厚重的黄泥沙丘之下...