Oracle 常用的修改語句

一、表Table

測試表:MY_TEST_TABLE

-- Create table
create table MY_TEST_TABLE
(
  A VARCHAR2(30),
  B NUMBER(10) default 1,
  C DATE
)
tablespace BOSSWG_CFG
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
-- Add comments to the table 
comment on table MY_TEST_TABLE
  is 'test';
-- Add comments to the columns 
comment on column MY_TEST_TABLE.A
  is 'aaaa';
comment on column MY_TEST_TABLE.B
  is 'bbbb';
comment on column MY_TEST_TABLE.C
  is 'cccc';


0.增加字段

alter table MY_TEST_TABLE add D VARCHAR2(50);
-- Add comments to the columns 
comment on column MY_TEST_TABLE.D
  is 'dddddd';

1. 修改表字段名

alter table MY_TEST_TABLE rename column A to D;  //將A字段名改成D


2. 修改表字段類型

alter table MY_TEST_TABLE modify B varchar2(10);  //將B字段的number(10)類型修改爲varchar2(10)


3. 修改表字段默認值

alter table MY_TEST_TABLE modify B default 2;  //將B字段的默認值1改成2


4. 修改表字段的非空屬性

alter table MY_TEST_TABLE modify B not null;  // 將B字段改成非空


5. 修改表字段的備註

comment on column MY_TEST_TABLE.B   // 修改B字段的備註值
  is 'bbbb2';


6. 主鍵操作

alter table MY_TEST_TABLE
  add constraint PK_MY_TEST_TABLE primary key (A);  //添加主鍵


alter table MY_TEST_TABLE
  drop constraint PK_MY_TEST_TABLE cascade;  //刪除主鍵

//如果要修改主鍵的話,即必須先刪除主鍵,再添加主鍵。


7.check約束操作

alter table MY_TEST_TABLE                
  add constraint CKC_MY_TEST_TABLE_B           //添加約束
  check (B in(1,2,3));

alter table MY_TEST_TABLE
  drop constraint CKC_MY_TEST_TABLE_B;     //刪除約束

//如果要修改約束,則必須先刪除約束,再添加約束。


8. 外鍵操作

alter table MY_TEST_TABLE
  add constraint FK_MY_TEST_DTABLE_A foreign key (A)   //添加外鍵
  references MY_TEST_TABLE2 (A) on delete cascade;


alter table MY_TEST_TABLE
  drop constraint FK_MY_TEST_DTABLE_A;           //刪除外鍵


//如果要修改外鍵,必須先刪除外鍵,再添加外鍵


二、序列SEQ

測試序列:MY_TEST_SEQ

create sequence MY_TEST_SEQ
minvalue 1
maxvalue 9999999999
start with 1
increment by 1
cache 20;


1. 修改minvalue與maxvalue值:

alter sequence MY_TEST_SEQ 
minvalue 20
maxvalue 99999999999;


2. 修改nextvalue值:

alter sequence MY_TEST_SEQ increment by 8 nocache;       //由原來nextvalue值爲2,修改爲nextvalue值爲10
select MY_TEST_SEQ.nextval from dual;
alter sequence MY_TEST_SEQ increment by 1 cache 20;    //這句必須有,不然會重置cache和增長率


alter sequence MY_TEST_SEQ increment by -8 nocache;    //由原來nextvalue值爲10,修改爲nextvalue值爲2
select MY_TEST_SEQ.nextval from dual;
alter sequence MY_TEST_SEQ increment by 1 cache 20;    //這句必須有,不然會重置cache和增長率




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章