テーブルの作成とテーブルスキーマ確認と削除

テーブルを作成する

create table テーブル名を実行します。

create table foo (
  id serial primary key not null
);

ちゃんと作成されたか\dtで確認します。

postgres=# \dt
         List of relations
 Schema | Name | Type  |  Owner
--------+-------+-------+----------
 public | foo  | table | postgres
(1 row)

テーブルスキーマを確認する

\d <table_name>を実行します。例えば\d fooとすると、

postgres=# \d foo
                            Table "public.foo"
 Column |  Type   | Collation | Nullable |             Default
--------+---------+-----------+----------+---------------------------------
 id     | integer |           | not null | nextval('foo_id_seq'::regclass)
Indexes:
    "foo_pkey" PRIMARY KEY, btree (id)

のように見ることができます。

テーブルを削除する

drop table テーブル名を実行します。上記でfooテーブルを作ったのでdrop table foo;ですね。

postgres=# drop table foo;
DROP TABLE

ちなみにここでもう一度fooテーブルを削除しようとすると、以下のようにエラーになります。

postgres=# drop table foo;
ERROR:  table "foo" does not exist

これはtableの後にif exists(存在する時)を付けることで回避できます。

postgres=# drop table if exists foo;
NOTICE:  table "foo" does not exist, skipping
DROP TABLE

同じようにcreate tableも既にある場合はエラーになってしまいますが、こちらの場合はif not exists(存在しない時)を付けてあげると回避できます。

create table if not exists foo (id text);
NOTICE:  relation "foo" already exists, skipping
CREATE TABLE