200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > oracle数据库建表 修改字段名称类型 增加字段 ID自动增长写法

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

时间:2023-01-20 07:33:48

相关推荐

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。