Thanks Tom. As the superuser, I'm able to create the table in the specific
tablespace. Does myuser require additional privileges?

My aim is to be able to create table in a specific tablespace (in this
case, mytablespace) by default without having to explicitly specific one. I
would think that is possible but I'm having trouble making it happen.

postgres=# create table postgrestab (a int) tablespace mytablespace;
CREATE TABLE

postgres=# select tablename,tableowner,tablespace from pg_tables where
tablename like 'post%';
  tablename  | tableowner |  tablespace
-------------+------------+--------------
 postgrestab | postgres   | mytablespace
(1 row)

Thanks.

On Thu, Aug 24, 2017 at 2:46 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:

> Tiffany Thang <tiffanyth...@gmail.com> writes:
> > 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.
>
> An empty entry in pg_tables means the table is in the database's
> default tablespace, whether you made it that way implicitly or explicitly.
> So this looks as-expected to me.  You'd need to spread the database across
> more than one tablespace to get anything in that column.
>
> > "show default_tablespace" is also empty.
>
> If you didn't do anything to change that setting, that would also be
> expected.  Again, the interpretation is "use the database's default
> tablespace".
>
>                         regards, tom lane
>

Reply via email to