PostgreSQLでtimestamp型のデフォルト値を現在時刻にするには

ドットインストールのPostgreSQL入門を勉強中に気づいた事をメモしておく。

#05 フィールドに制約をつけてみよう」でtimestamp型のデフォルト値を現在時刻にするために以下のように指定していた。

create table posts (
    id serial primary key,
    title varchar(255) not null, 
    body text check(length(body) > 5),
    is_draft boolean default TRUE,
    created timestamp default 'now' ★★★
);


しかし、これだとテーブル作成時の時刻がデフォルト値になってしまう。
データをInsertした際の現在時刻をデフォルト値とする場合には以下のように指定する必要がある。

create table posts (
    id serial primary key,
    title varchar(255) not null, 
    body text check(length(body) > 5),
    is_draft boolean default TRUE,
    created timestamp default CURRENT_TIMESTAMP ★★★
);


【参考記事】