1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Mac OS】PostgreSQLでinsert文を書くときに、created_atカラムに現在時刻を自動で入れたい

Last updated at Posted at 2018-05-23

##開発環境

  • Mac OS 10.12.6
  • Rails 5.1.6
  • PostgreSQL 10.1

##問題

  • 既にRailsでテーブルの構成を一度作っている状態、かつ、SQLiteからPostgreSQLに変更を行なった際に、insert文でレコードを追加しようとしたら、created_atカラムがnullであると返ってくる

##目標

  • insert文でレコードを追加する際にcreated_atカラムに自動で現在時刻が入る

##対応
元々のテーブルの構成は以下のような感じ。
スクリーンショット 2018-05-24 01.48.48.png

で、今回は下記の部分を変更する
スクリーンショット 2018-05-24 01.48.41.png

※上の2つは縦線を境に対応する表だと思ってください!

解決策としてはalter tableコマンドを使用します。
alter tableコマンドはテーブル定義の変更をする際によく使います。

スクリーンショット 2018-05-24 01.41.55.png

上が僕が実際に書いた変更文です。

alter table <テーブル名> alter column <カラム名> set default CYRRENT_TIMESTAMP;

スクリーンショット 2018-05-24 02.00.20.png

するとこんな感じで、defaultの部分にCURRENT_TIMESTAMPが入りました!

これでcreated_atカラムに現在時刻が自動で挿入することができました!


【追記】 updated_atカラムの上記の方法で設定可能です。
1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?