MySQLのDATETIME型を使うことで、データの更新日を自動で表せる!のでメモっす。
MySQLでORDER BYを使ったソート方法を理解しておくと、この記事もスムーズかもです!
-
【MySQL】ORDER BY句でデータの並び替えを行う方法
MySQLではORDER BY句でフィールドを指定することで、テーブル内の並びかえを行うことができます。 ここではMyS ...
続きを見る
MySQL(phpMyAdmin)のDATETIME型で更新日時付与する
そもそもtimestamp型でも、データ更新された日付の自動取得は可能なのですが、どうやら2038年問題というものに引っかかっている型なようです。
2038年1月19日3時14分7秒を過ぎたとき、コンピューターが誤作動を起こし、時刻に狂いが生じるとされる問題。
MuySQLの初学者な僕としては、重大なバグになったら改修できなそう、と感じたのでDATETIME型を使って日付更新を学んでいこうと決意。
DATETIME 型は、日付と時間の両方の部分を含む値に使用されます。MySQL では、DATETIME 値の取得と表示は 'YYYY-MM-DD HH:MM:SS' 形式で行われます。サポートしている範囲は '1000-01-01 00:00:00' から '9999-12-31 23:59:59' です。
今回は以下のテーブルを使って、DATETIME型の設定を行っていきます。
SELECT * FROM mytable
1. 構造タブを選択して新規カラムを追加
構造タブをクリックして、
カラムを任意の位置に追加するで実行。
2.カラム編集画面でDATE TIME型を定義
カラムの編集画面に入るので、以下のように選択して保存。
- 名前:登録日(適当)
- データ型:DATETIME
- 属性:on update current_timestamp
ALTER TABLE `mytable` ADD `登録日` DATETIME on update CURRENT_TIMESTAMP NOT NULL AFTER `yomi`;
名前とデータ型は以下に設定して、
属性は「on update current_timestamp」を設定。
3. DATETIME型が動くか動作確認
表示タブを選択してテーブルを表示すると、
SELECT * FROM mytable
登録日のカラムが増えてるのが分かります↓
idの4と5が重複してるので、id=5のレコードの内容を編集します。5行目の「編集」をクリック
phpMyAdminは項目をダブルクリックすることで、すぐに内容の編集ができますが、日時の変更はなされません。
yomiの行のテキスト「みず」を「すい」へテキストを修正し実行。
編集したレコードの登録日に最新日時が入りました!
いえーい。
テキストの追加や削除、編集など行わずにレコードの編集画面を更新・実行しただけでは、日時の変更がなされません!
まとめ
レコードの編集や追加した日時を自動で取得できるようになれば、
- 何をいつやったのか
- いつ取得したのか
などなど、履歴を追いながら改善を測ることが容易になるのではないでしょうか。
-
【MySQL】ORDER BY句でデータの並び替えを行う方法
MySQLではORDER BY句でフィールドを指定することで、テーブル内の並びかえを行うことができます。 ここではMyS ...
続きを見る
関連記事:【MySQL】ORDER BY句でデータの並び替えを行う方法
関連記事:MySQLのWHEREとLIKE演算子でデータ検索する方法
関連記事:MySQLでWHERE句使ってデータ抽出する手順