CREATE TABLESPACE
Name
CREATE TABLESPACE -- 定义一个新的表空间
Synopsis
CREATE TABLESPACE _tablespace_name_ [ OWNER _user_name_ ] LOCATION '_directory_'
描述
CREATE TABLESPACE
注册一个集群范围内的新表空间。 表空间的名字必须在该数据库集群中的任何现有表空间中唯一。
表空间允许超级用户在文件系统中定义一个可选的位置, 这个位置可以存放代表数据库对象的数据文件(比如表和索引)。
一个用户,如果有合适的权限,就可以把CREATE DATABASE
, CREATE TABLE
, CREATE INDEX
, ADD CONSTRAINT
之一传递给_tablespace_name_
, 这样就让这些对象的数据文件存储在指定的表空间里。
参数
_tablespace_name_
要创建的表空间的名字。这个名字不能以pg_
开头, 因为这些名字是保留给系统表空间使用的。
_user_name_
将拥有这个表空间的用户名。如果省略,缺省为执行此命令的用户名。 只有超级用户可以创建表空间,但是他们可以把表空间的所有者授予非超级用户。
_directory_
用于表空间的目录。目录必须是空的,并且由运行PostgreSQL 系统用户所有。目录必须用一个绝对路径声明。
注意
只有在那些支持符号连接的系统上才支持表空间。
CREATE TABLESPACE
不允许在一个事务块内部执行。
例子
在/data/dbs
创建一个表空间dbspace
:
CREATE TABLESPACE dbspace LOCATION '/data/dbs';
在/data/indexes
创建一个表空间indexspace
并由用户genevieve
所有:
CREATE TABLESPACE indexspace OWNER genevieve LOCATION '/data/indexes';
兼容性
CREATE TABLESPACE
是PostgreSQL扩展。
又见
CREATE DATABASE, CREATE TABLE, CREATE INDEX, DROP TABLESPACE, ALTER TABLESPACE