{"Entry":{"collection":"sql","key":"create-tablespace","name":"CREATE TABLESPACE","aliases":["createtablespace"],"metadata":{"aliases":["createtablespace"],"changed_in":["9.0","9.4","9.5","14"],"changes":[{"from":"7.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":[],"removed":[]},"status":"added","synopsis":null,"to":"8.0"},{"from":"8.1","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["notes"],"removed":[]},"status":"changed","synopsis":null,"to":"8.2"},{"from":"8.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"8.3"},{"from":"8.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":{"added":["CREATE TABLESPACE tablespace_name [ OWNER user_name ] LOCATION 'directory'"],"removed":["CREATE TABLESPACE tablespacename [ OWNER username ] LOCATION 'directory'"]},"to":"9.0"},{"from":"9.3","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":{"added":["[ WITH ( tablespace_option = value [, ... ] ) ]"],"removed":[]},"to":"9.4"},{"from":"9.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":[],"removed":[]},"status":"changed","synopsis":{"added":["[ OWNER { new_owner | CURRENT_USER | SESSION_USER } ]"],"removed":["[ OWNER user_name ]"]},"to":"9.5"},{"from":"9.5","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"9.6"},{"from":"11","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters","examples"],"removed":[]},"status":"changed","synopsis":null,"to":"12"},{"from":"12","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"13"},{"from":"13","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":{"added":["[ OWNER { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ]"],"removed":[]},"to":"14"},{"from":"15","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["notes"],"removed":[]},"status":"changed","synopsis":null,"to":"16"},{"from":"16","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"17"},{"from":"17","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"18"}],"content_hash":"ad780525149fa3e55bd1aa7f5760d220d57f8f4bbbf0b119517cb229b8a35b81","editorial":{},"first_version":"8.0","group":"schema","imported_at":"2026-09-30T17:43:37.859637+08:00","last_version":"20","name":"CREATE TABLESPACE","object":"TABLESPACE","position":4006,"present_in":["8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"purpose":"define a new tablespace","purpose_zh":"","related":["create-database","create-table","create-index","drop-tablespace","alter-tablespace"],"slug":"create-tablespace","source_rev":"a709ab85","synopsis":"CREATE TABLESPACE tablespace_name\n[ OWNER { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ]\nLOCATION 'directory'\n[ WITH ( tablespace_option = value [, ... ] ) ]","verb":"CREATE"}},"Definition":{"Collection":"sql","Key":"create-tablespace","SourceDatabase":"center","Version":"18","SourceTable":"sqlcmd","SourceKey":"create-tablespace","SourceRevision":"a709ab85","Facts":{"anchor":"SQL-CREATETABLESPACE","file":"sql-createtablespace.html","lang":"en","name":"CREATE TABLESPACE","purpose":"define a new tablespace","purpose_zh":"","related":["create-database","create-table","create-index","drop-tablespace","alter-tablespace"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eCREATE TABLESPACE\u003c/code\u003e registers a new cluster-wide tablespace. The tablespace name must be distinct from the name of any existing tablespace in the database cluster.\u003c/p\u003e\u003cp\u003eA tablespace allows superusers to define an alternative location on the file system where the data files containing database objects (such as tables and indexes) can reside.\u003c/p\u003e\u003cp\u003eA user with appropriate privileges can pass \u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_name\u003c/code\u003e\u003c/em\u003e to \u003ccode class=\"command\"\u003eCREATE DATABASE\u003c/code\u003e, \u003ccode class=\"command\"\u003eCREATE TABLE\u003c/code\u003e, \u003ccode class=\"command\"\u003eCREATE INDEX\u003c/code\u003e or \u003ccode class=\"command\"\u003eADD CONSTRAINT\u003c/code\u003e to have the data files for these objects stored within the specified tablespace.\u003c/p\u003e\u003cdiv class=\"warning\"\u003e\u003ch3\u003eWarning\u003c/h3\u003e\u003cp\u003eA tablespace cannot be used independently of the cluster in which it is defined; see \u003ca href=\"/docs/18/manage-ag-tablespaces.html\" title=\"22.6. Tablespaces\"\u003eSection 22.6\u003c/a\u003e.\u003c/p\u003e\u003c/div\u003e","key":"description","title":"Description"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of a tablespace to be created. The name cannot begin with \u003ccode class=\"literal\"\u003epg_\u003c/code\u003e, as such names are reserved for system tablespaces.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003euser_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the user who will own the tablespace. If omitted, defaults to the user executing the command. Only superusers can create tablespaces, but they can assign ownership of tablespaces to non-superusers.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003edirectory\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe directory that will be used for the tablespace. The directory must exist (\u003ccode class=\"command\"\u003eCREATE TABLESPACE\u003c/code\u003e will not create it), should be empty, and must be owned by the \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e system user. The directory must be specified by an absolute path name.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_option\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eA tablespace parameter to be set or reset. Currently, the only available parameters are \u003ccode class=\"varname\"\u003eseq_page_cost\u003c/code\u003e, \u003ccode class=\"varname\"\u003erandom_page_cost\u003c/code\u003e, \u003ccode class=\"varname\"\u003eeffective_io_concurrency\u003c/code\u003e and \u003ccode class=\"varname\"\u003emaintenance_io_concurrency\u003c/code\u003e. Setting these values for a particular tablespace will override the planner's usual estimate of the cost of reading pages from tables in that tablespace, and how many concurrent I/Os are issued, as established by the configuration parameters of the same name (see \u003ca href=\"/docs/18/runtime-config-query.html#GUC-SEQ-PAGE-COST\"\u003eseq_page_cost\u003c/a\u003e, \u003ca href=\"/docs/18/runtime-config-query.html#GUC-RANDOM-PAGE-COST\"\u003erandom_page_cost\u003c/a\u003e, \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY\"\u003eeffective_io_concurrency\u003c/a\u003e, \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY\"\u003emaintenance_io_concurrency\u003c/a\u003e). This may be useful if one tablespace is located on a disk which is faster or slower than the remainder of the I/O subsystem.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"Parameters"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eCREATE TABLESPACE\u003c/code\u003e cannot be executed inside a transaction block.\u003c/p\u003e","key":"notes","title":"Notes"},{"html":"\u003cp\u003eTo create a tablespace \u003ccode class=\"literal\"\u003edbspace\u003c/code\u003e at file system location \u003ccode class=\"literal\"\u003e/data/dbs\u003c/code\u003e, first create the directory using operating system facilities and set the correct ownership:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003emkdir /data/dbs\nchown postgres:postgres /data/dbs\n\u003c/pre\u003e\u003cp\u003eThen issue the tablespace creation command inside \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eCREATE TABLESPACE dbspace LOCATION '/data/dbs';\n\u003c/pre\u003e\u003cp\u003eTo create a tablespace owned by a different database user, use a command like this:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eCREATE TABLESPACE indexspace OWNER genevieve LOCATION '/data/indexes';\n\u003c/pre\u003e","key":"examples","title":"Examples"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eCREATE TABLESPACE\u003c/code\u003e is a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e extension.\u003c/p\u003e","key":"compatibility","title":"Compatibility"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-database/?v=18\" title=\"CREATE DATABASE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-table/?v=18\" title=\"CREATE TABLE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE TABLE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-index/?v=18\" title=\"CREATE INDEX\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE INDEX\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-tablespace/?v=18\" title=\"DROP TABLESPACE\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP TABLESPACE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-tablespace/?v=18\" title=\"ALTER TABLESPACE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER TABLESPACE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"See Also"}],"sections_same_as":"","slug":"18","synopsis_html":"CREATE TABLESPACE \u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_name\u003c/code\u003e\u003c/em\u003e\n    [ OWNER { \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_owner\u003c/code\u003e\u003c/em\u003e | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ]\n    LOCATION '\u003cem class=\"replaceable\"\u003e\u003ccode\u003edirectory\u003c/code\u003e\u003c/em\u003e'\n    [ WITH ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_option\u003c/code\u003e\u003c/em\u003e = \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e [, ... ] ) ]","synopsis_text":"CREATE TABLESPACE tablespace_name\n[ OWNER { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ]\nLOCATION 'directory'\n[ WITH ( tablespace_option = value [, ... ] ) ]"},"ManualEvidence":{},"MeasuredEvidence":{}},"Text":{"Collection":"sql","Key":"create-tablespace","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"CREATE TABLESPACE","Summary":"定义一个新表空间","BodyHTML":"\u003cpre\u003eCREATE TABLESPACE tablespace_name\n[ OWNER { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ]\nLOCATION \u0026#39;directory\u0026#39;\n[ WITH ( tablespace_option = value [, ... ] ) ]\u003c/pre\u003e\u003csection\u003e\u003ch2\u003e描述\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eCREATE TABLESPACE\u003c/code\u003e注册一个新的集簇级别的表空间。该表空间的名称必须不同于数据库集簇中任何现有表空间的名称。\u003c/p\u003e\u003cp\u003e表空间允许超级用户在文件系统中定义一个替代位置，使数据库对象（如表和索引）的数据文件可以存放在那里。\u003c/p\u003e\u003cp\u003e具有适当权限的用户可以将 \u003cem\u003e\u003ccode\u003etablespace_name\u003c/code\u003e\u003c/em\u003e传递给 \u003ccode\u003eCREATE DATABASE\u003c/code\u003e、\u003ccode\u003eCREATE TABLE\u003c/code\u003e、\u003ccode\u003eCREATE INDEX\u003c/code\u003e或\u003ccode\u003eADD CONSTRAINT\u003c/code\u003e，从而将这些对象的数据文件存储在指定的表空间中。\u003c/p\u003e\u003cdiv\u003e\u003ch3\u003e警告\u003c/h3\u003e\u003cp\u003e表空间不能脱离定义它的集簇单独使用；见\u003ca href=\"/docs/18/manage-ag-tablespaces.html\" rel=\"nofollow\"\u003e第 22.6 节\u003c/a\u003e。\u003c/p\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e参数\u003c/h2\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003etablespace_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要创建的表空间名称。名称不能以\u003ccode\u003epg_\u003c/code\u003e开头，因为这类名称保留给系统表空间使用。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003euser_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e将成为该表空间所有者的用户名。若省略，则默认为执行该命令的用户。只有超级用户可以创建表空间，但他们可以将表空间的所有权赋予非超级用户。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003edirectory\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e用作该表空间的目录。该目录必须已存在（\u003ccode\u003eCREATE TABLESPACE\u003c/code\u003e 不会创建它），应为空，并且必须由 \u003cspan\u003ePostgreSQL\u003c/span\u003e系统用户拥有。该目录必须指定为绝对路径名。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003etablespace_option\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要设置或者重置的表空间参数。当前，唯一可用的参数是 \u003ccode\u003eseq_page_cost\u003c/code\u003e、\u003ccode\u003erandom_page_cost\u003c/code\u003e、\u003ccode\u003eeffective_io_concurrency\u003c/code\u003e以及\u003ccode\u003emaintenance_io_concurrency\u003c/code\u003e。为一个特定表空间设定这些值将覆盖由同名配置参数确定的规划器对该表空间中表页读取的常规代价估计，以及会发起的并发 I/O 数量（见\u003ca href=\"/docs/18/runtime-config-query.html#GUC-SEQ-PAGE-COST\" rel=\"nofollow\"\u003eseq_page_cost\u003c/a\u003e、\u003ca href=\"/docs/18/runtime-config-query.html#GUC-RANDOM-PAGE-COST\" rel=\"nofollow\"\u003erandom_page_cost\u003c/a\u003e、\u003ca href=\"/docs/18/runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY\" rel=\"nofollow\"\u003eeffective_io_concurrency\u003c/a\u003e、\u003ca href=\"/docs/18/runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY\" rel=\"nofollow\"\u003emaintenance_io_concurrency\u003c/a\u003e）。如果一个表空间位于一个比 I/O 子系统其余部分更慢或者更快的磁盘上，这些参数就能发挥作用。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e注解\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eCREATE TABLESPACE\u003c/code\u003e不能在事务块内执行。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e示例\u003c/h2\u003e\u003cp\u003e要在文件系统位置\u003ccode\u003e/data/dbs\u003c/code\u003e创建表空间 \u003ccode\u003edbspace\u003c/code\u003e，请首先使用操作系统工具创建目录并设置正确的所有权：\u003c/p\u003e\u003cpre\u003emkdir /data/dbs\nchown postgres:postgres /data/dbs\n\u003c/pre\u003e\u003cp\u003e然后在\u003cspan\u003ePostgreSQL\u003c/span\u003e中发出创建表空间的命令：\u003c/p\u003e\u003cpre\u003eCREATE TABLESPACE dbspace LOCATION \u0026#39;/data/dbs\u0026#39;;\n\u003c/pre\u003e\u003cp\u003e要创建一个由其他数据库用户拥有的表空间，可使用类似下面的命令：\u003c/p\u003e\u003cpre\u003eCREATE TABLESPACE indexspace OWNER genevieve LOCATION \u0026#39;/data/indexes\u0026#39;;\n\u003c/pre\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e兼容性\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eCREATE TABLESPACE\u003c/code\u003e是一种\u003cspan\u003ePostgreSQL\u003c/span\u003e扩展。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e另见\u003c/h2\u003e\u003cspan\u003e\u003ca href=\"/wiki/sql/create-database/?v=18\" title=\"CREATE DATABASE\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-table/?v=18\" title=\"CREATE TABLE\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE TABLE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-index/?v=18\" title=\"CREATE INDEX\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE INDEX\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-tablespace/?v=18\" title=\"DROP TABLESPACE\" rel=\"nofollow\"\u003e\u003cspan\u003eDROP TABLESPACE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-tablespace/?v=18\" title=\"ALTER TABLESPACE\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER TABLESPACE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","SourceRevision":"1b5ca64c","ContentHash":"6a0578fdd9b38df3b8855215fc274899ab21d9bd6046651c5bab7d8ca086b0e8","Payload":{"purpose_zh":"定义一个新表空间","sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eCREATE TABLESPACE\u003c/code\u003e注册一个新的集簇级别的表空间。该表空间的名称必须不同于数据库集簇中任何现有表空间的名称。\u003c/p\u003e\u003cp\u003e表空间允许超级用户在文件系统中定义一个替代位置，使数据库对象（如表和索引）的数据文件可以存放在那里。\u003c/p\u003e\u003cp\u003e具有适当权限的用户可以将 \u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_name\u003c/code\u003e\u003c/em\u003e传递给 \u003ccode class=\"command\"\u003eCREATE DATABASE\u003c/code\u003e、\u003ccode class=\"command\"\u003eCREATE TABLE\u003c/code\u003e、\u003ccode class=\"command\"\u003eCREATE INDEX\u003c/code\u003e或\u003ccode class=\"command\"\u003eADD CONSTRAINT\u003c/code\u003e，从而将这些对象的数据文件存储在指定的表空间中。\u003c/p\u003e\u003cdiv class=\"warning\"\u003e\u003ch3\u003e警告\u003c/h3\u003e\u003cp\u003e表空间不能脱离定义它的集簇单独使用；见\u003ca href=\"/docs/18/manage-ag-tablespaces.html\" title=\"22.6. 表空间\"\u003e第 22.6 节\u003c/a\u003e。\u003c/p\u003e\u003c/div\u003e","key":"description","title":"描述"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要创建的表空间名称。名称不能以\u003ccode class=\"literal\"\u003epg_\u003c/code\u003e开头，因为这类名称保留给系统表空间使用。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003euser_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e将成为该表空间所有者的用户名。若省略，则默认为执行该命令的用户。只有超级用户可以创建表空间，但他们可以将表空间的所有权赋予非超级用户。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003edirectory\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e用作该表空间的目录。该目录必须已存在（\u003ccode class=\"command\"\u003eCREATE TABLESPACE\u003c/code\u003e 不会创建它），应为空，并且必须由 \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e系统用户拥有。该目录必须指定为绝对路径名。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_option\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要设置或者重置的表空间参数。当前，唯一可用的参数是 \u003ccode class=\"varname\"\u003eseq_page_cost\u003c/code\u003e、\u003ccode class=\"varname\"\u003erandom_page_cost\u003c/code\u003e、\u003ccode class=\"varname\"\u003eeffective_io_concurrency\u003c/code\u003e以及\u003ccode class=\"varname\"\u003emaintenance_io_concurrency\u003c/code\u003e。为一个特定表空间设定这些值将覆盖由同名配置参数确定的规划器对该表空间中表页读取的常规代价估计，以及会发起的并发 I/O 数量（见\u003ca href=\"/docs/18/runtime-config-query.html#GUC-SEQ-PAGE-COST\"\u003eseq_page_cost\u003c/a\u003e、\u003ca href=\"/docs/18/runtime-config-query.html#GUC-RANDOM-PAGE-COST\"\u003erandom_page_cost\u003c/a\u003e、\u003ca href=\"/docs/18/runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY\"\u003eeffective_io_concurrency\u003c/a\u003e、\u003ca href=\"/docs/18/runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY\"\u003emaintenance_io_concurrency\u003c/a\u003e）。如果一个表空间位于一个比 I/O 子系统其余部分更慢或者更快的磁盘上，这些参数就能发挥作用。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"参数"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eCREATE TABLESPACE\u003c/code\u003e不能在事务块内执行。\u003c/p\u003e","key":"notes","title":"注解"},{"html":"\u003cp\u003e要在文件系统位置\u003ccode class=\"literal\"\u003e/data/dbs\u003c/code\u003e创建表空间 \u003ccode class=\"literal\"\u003edbspace\u003c/code\u003e，请首先使用操作系统工具创建目录并设置正确的所有权：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003emkdir /data/dbs\nchown postgres:postgres /data/dbs\n\u003c/pre\u003e\u003cp\u003e然后在\u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e中发出创建表空间的命令：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eCREATE TABLESPACE dbspace LOCATION '/data/dbs';\n\u003c/pre\u003e\u003cp\u003e要创建一个由其他数据库用户拥有的表空间，可使用类似下面的命令：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eCREATE TABLESPACE indexspace OWNER genevieve LOCATION '/data/indexes';\n\u003c/pre\u003e","key":"examples","title":"示例"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eCREATE TABLESPACE\u003c/code\u003e是一种\u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e扩展。\u003c/p\u003e","key":"compatibility","title":"兼容性"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-database/?v=18\" title=\"CREATE DATABASE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-table/?v=18\" title=\"CREATE TABLE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE TABLE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-index/?v=18\" title=\"CREATE INDEX\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE INDEX\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-tablespace/?v=18\" title=\"DROP TABLESPACE\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP TABLESPACE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-tablespace/?v=18\" title=\"ALTER TABLESPACE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER TABLESPACE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"另见"}],"sections_same_as":"","synopsis_html":"CREATE TABLESPACE \u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_name\u003c/code\u003e\u003c/em\u003e\n    [ OWNER { \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_owner\u003c/code\u003e\u003c/em\u003e | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ]\n    LOCATION '\u003cem class=\"replaceable\"\u003e\u003ccode\u003edirectory\u003c/code\u003e\u003c/em\u003e'\n    [ WITH ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_option\u003c/code\u003e\u003c/em\u003e = \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e [, ... ] ) ]","synopsis_text":"CREATE TABLESPACE tablespace_name\n[ OWNER { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ]\nLOCATION 'directory'\n[ WITH ( tablespace_option = value [, ... ] ) ]"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
