Новое табличное пространство

postgres$ cd /home/postgres
postgres$ mkdir ts_dir
=> CREATE TABLESPACE ts LOCATION '/home/postgres/ts_dir';
CREATE TABLESPACE

Табличное пространство по умолчанию для template1

=> ALTER DATABASE template1 SET TABLESPACE ts;
ALTER DATABASE

Новая база данных и проверка

=> CREATE DATABASE db;
CREATE DATABASE
=> SELECT spcname
FROM pg_tablespace
WHERE OID = (SELECT dattablespace FROM pg_database WHERE datname = 'db');
 spcname 
---------
 ts
(1 row)

Табличное пространство по умолчанию - ts. Вывод: табличное пространство по умолчанию определяется шаблоном, из которого клонируется новая база данных.

Символическая ссылка

=> SELECT OID AS tsoid FROM pg_tablespace WHERE spcname = 'ts';
 tsoid 
-------
 16421
(1 row)

=> \! ls -l /usr/local/pgsql/data/pg_tblspc/16421
lrwxrwxrwx 1 postgres postgres 21 дек 24 17:28 /usr/local/pgsql/data/pg_tblspc/16421 -> /home/postgres/ts_dir

Удаление табличного пространства

=> ALTER DATABASE template1 SET TABLESPACE pg_default;
ALTER DATABASE
=> DROP DATABASE db;
DROP DATABASE
=> DROP TABLESPACE ts;
DROP TABLESPACE