🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 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](#calibre_link-111), [CREATE TABLE](#calibre_link-7), [CREATE INDEX](#calibre_link-83), [DROP TABLESPACE](#calibre_link-112), [ALTER TABLESPACE](#calibre_link-113)