1. 程式人生 > >postgresql表空間

postgresql表空間

建立表空間的語法:

命令:       CREATE TABLESPACE

描述:       建立新的表空間

語法:

CREATE TABLESPACE 表空間的名稱

    [ OWNER { 新的屬主 | CURRENT_USER | SESSION_USER } ]

    LOCATION '目錄'

    [ WITH ( 表空間_選項 = 值 [, ... ] ) ]

建立資料庫時可以指定預設表空間,例:

create database db01 tablespace tbs_data;

改變資料庫預設表空間語法如下:

alter database db01 set tablespace tbs_data01;

在修改資料庫預設表空間時,必須在關閉所有連線的情況下進行,否則會報如下錯誤:

postgres=# alter database mydb set tablespace data2;

錯誤:  其他使用者正在使用資料庫 "mydb"

描述:  那裡有1個其它會話正在使用資料庫.

改變資料庫的預設表空間時,資料庫中已有表的表空間不會改變。建立表時也可以指定表空間,命令如下:

create table test(id int) tablespace data2;

建立索引時,同樣可以指定表空間,命令如下:

create index idx_test_id test(id) tablespace data2;

建立唯一約束時可以指定約束索引的表空間,命令如下:

alter table test add constraint un_test_id unique(id) using index tablespace data2;

增加主鍵時指定表空間,命令如下:

alter table add constraint pk_test_id primary key(id) using index tablespace data2;

把表從一個表空間移動到另一個表空間:

alter table test set tablespace data1;

移動時會鎖表,包括select在內的所有操作都將被阻塞。