為Oracle資料庫表建立自動增長序列及Oracle的常見操作

暖楓無敵發表於2013-03-07

在SQL Server中,建立表欄位自動增長,可以使用 identity(1,1)實現,但是在Oracle沒有這樣的函式,我們必須得為其建立序列(Sequence),方法如下:

 

--建立test表
create table test
(
   ID int not null primary key,
   Name varchar(20)
);

--為test表建立自動增長序列
CREATE SEQUENCE GRADE_SEQUENCE
increment by 1
start with 1
nomaxvalue
nocycle
nocache 
-------------執行上面一段----------------
--為test表建立插入觸發器
create trigger "GREADE_TRIGGER" BEFORE
INSERT ON TEST FOR EACH ROW WHEN(new.ID IS NULL)
BEGIN
SELECT GRADE_SEQUENCE.NEXTVAL INTO:NEW.ID FROM DUAL;
END;
----------執行上面一段-----------------

insert into TEST(NAME) values('AA');
insert into TEST(NAME) values('BB');
insert into TEST(NAME) values('CC');
insert into TEST(NAME) values('DD');
insert into TEST(NAME) values('EE');

select * from test;

 

1、增加新欄位:

alter table table_name; 

   add (name varchar(20) default 'unkown');

如:

alter table test; 

   add(address varchar(100));

2、修改表欄位:

alter table table_name;

   modify (name varchar2(30) default 'hebei');

如:

alter table test;  

  modify (address varchar(20) default 'unkown');


3、刪除表欄位:

alter table table_name;

   drop column column_name;

通常在系統不忙的時候刪除不使用的欄位,可以先設定欄位為

 unused;

如:

alter table test;  

 set unused column address;


4、表重新命名:

rename table_name1 to table_name2;

如:

rename test to test2;


5、清空表中的資料:

TRUNCATE TABLE table_name;

如:

truncate table test;


6、給表增加註釋:

COMMENT ON TABLE table_name;

如:

comment on table test is 'This is a test table';

 
7、刪除表結構:

DROP TABLE table_name;

此操作屬DDL,會自動提交且不可回滾;



 

 


 

 

相關文章