如何在PostgreSQL中的自定义表空间中创建数据库和表?

时间:2016-10-19 05:43:55

标签: postgresql tablespace

我尝试在自定义表空间中创建数据库和表格,而不是' pg_default'表空间用于表。这是一个例子:

mkdir /data

chown postgres /data

CREATE TABLESPACE mytspace OWNER postgres LOCATION '/data';

CREATE DATABASE mydb WITH OWNER = postgres ENCODING = 'UTF8' LC_COLLATE = 'ru_RU.utf8' LC_CTYPE = 'ru_RU.utf8' TABLESPACE = mytspace  CONNECTION LIMIT = -1;

CREATE TABLE foo(i int) TABLESPACE mytspace;

psql' s \db命令显示已创建表空间

          List of tablespaces
    Name    |  Owner   |   Location    
------------+----------+---------------
 mytspace   | postgres | /data
 pg_default | postgres | 
 pg_global  | postgres | 
(3 rows)

在适当的表空间中创建的数据库。这是我在pgAdmin中看到的SQL:

CREATE DATABASE mydb
    WITH 
    OWNER = postgres
    ENCODING = 'UTF8'
    LC_COLLATE = 'ru_RU.utf8'
    LC_CTYPE = 'ru_RU.utf8'
    TABLESPACE = mytspace
    CONNECTION LIMIT = -1;

但在' pg_default"中创建的表格表

CREATE TABLE foo
(
    i integer
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

我应该怎么做才能创造一个' foo'表格在' mytspace'表

1 个答案:

答案 0 :(得分:0)

似乎是 pgAdmin 4 v 1.0 中的错误。 GUI和SQL源为创建的表显示错误的表空间,但为创建的数据库显示正确的表空间。 pgAdmin 3 v 1.22.1 正确显示所有内容。