oracle数据库表字段的更名、属性更改及id自动增长

本文详细介绍Oracle数据库中创建表、增加字段、修改字段名称及类型的方法,包括使用Sequence实现ID字段自动增长的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值