Hi,
I'm not able to create tables in a specific tablespace. I'm not sure what I
have missed.

According to the documentation, a table can be created in a specific
tablespace by performing the following:
1. Specify the tablespace parameter in the create database statement.
2. Specify the tablespace parameter in the create table statement.


I've tried both but the tablespace column in pg_tables is empty. "show
default_tablespace" is also empty. Can someone help?

Thanks.


As the superuser,
create tablespace mytablespace owner myuser location '/pgsqldata/mydb';
create database mydb owner=myuser tablespace=mytablespace;

As myuser,
mydb=> select current_user;
 current_user
--------------
 myuser
(1 row)

mydb=> create table tab1 (a int);
CREATE TABLE
mydb=> create table tab2 (a int) tablespace mytablespace;
CREATE TABLE
mydb=> show default_tablespace;
 default_tablespace
--------------------

(1 row)


mydb=> select tablename,tableowner,tablespace from pg_tables where
tablename like 'tab%';
 tablename | tableowner | tablespace
-----------+------------+------------
 tab1      | myuser     |
 tab2      | myuser     |
(2 rows)

Reply via email to