可能有些老同志不是很清楚,在9i之後,創建一個PK的時候,是自動創建一個與之對應的唯一索引的。
如果不特別指定,那麼這個索引的表空間和表格的空間是一樣的,但是我們不建議放在一起。
一般的語句形如:
Create table test(name varchar2(10));
alter table test add primary key(name) tablespace Yspace;
--
按照以上的方式來處理,有兩個不好的地方:第一是無法指定索引的名稱,其次無法指定索引存放的表空間。
爲了避免這種錯誤,最好按照以下方式來定義表格和表空間:
Create table test_uid(name varchar2(10),
constraint TEST_UID_PK PRIMARY KEY(NAME)
USING INDEX (Create unique index uid_test_uid on test_uid(name) tablespace TABLESPACE2);
)
當然,也可以分部來處理.
create table testone(name varchar2(10 char)) TABLESPACE1;
ALTER TABLE TESTONE ADD CONSTRAINT PK_TESTONE1 PRIMARY KEY(NAME) USING INDEX TABLESPACE TABLESPACE2;
作爲一種好習慣,不要把索引和表格的數據存在在同一個表空間中。
來源:http://zhengweisincere.blog.163.com/blog/static/49844649201143043450684/