MariaDB 10.9|INSERT 時だけ自動で日付を入れるカラムを追加する方法

MariaDB を運用していると「新しく追加されるレコードには自動で作成日時を入れたい」というニーズは多いでしょう。特にログや履歴テーブルでは INSERT された瞬間の時刻を記録 したい場面があります。

本記事では MariaDB 10.9 を対象に、テーブルに「INSERT 時だけ自動で現在日時が入るカラム」を追加する方法を解説します。既存のデータはそのまま NULL として残しつつ、新規データだけに自動的に日時を保存する方法です。


TIMESTAMP カラムを追加する基本コマンド

まずは基本的な ALTER TABLE 文で新しいカラムを追加します。例えばテーブル名が my_table の場合、以下のように実行します。

ALTER TABLE my_table
  ADD COLUMN created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP;

コマンドのポイント


実際の動作例

追加後に新しくレコードを挿入すると、自動で現在の日時が created_at カラムに入ります。

INSERT INTO my_table (name, value) VALUES ('テスト', 123);

このとき、created_at カラムには MariaDB サーバーの現在時刻が入ります。既存のレコードは NULL のままです。


UPDATE 時にも自動更新したい場合は?

もし「作成日時」ではなく「最終更新日時」として使いたい場合は、ON UPDATE CURRENT_TIMESTAMP を追加します。

ALTER TABLE my_table 
  ADD COLUMN updated_at TIMESTAMP NOT NULL 
  DEFAULT CURRENT_TIMESTAMP 
  ON UPDATE CURRENT_TIMESTAMP;

この場合は INSERT でも UPDATE でも自動的に値が更新されます。ただし今回は「INSERT だけで良い」という要件なので created_at カラムのように NULL 許容で DEFAULT のみ を使うのが適切です。


まとめ

この方法を使えば、既存のデータを壊すことなくスムーズに「作成日時カラム」を導入できます。これから MariaDB のテーブル設計を見直す方はぜひ参考にしてみてください。


.htaccessは階層で引き継がれる?Apacheの挙動を徹底解説

MBTI診断

SEO対策に必須!検索上位を狙うsitemap.xmlの完全ガイド

Google Search Consoleの「代替ページ(適切なcanonicalタグあり)」とは?原因と解決法を徹底解説!

Microsoft純正の新しいコンソールエディタ「edit」が復活!| edit.exe インストール方法

Googleサイト確認のTXTレコードをnslookupで確認する方法【SEO対策】

Googleサーチコンソールに反映されるための最低限のSEO構造とは

PHPで複数ファイルを順番に削除する方法

MBTI診断 | あなたの性格タイプを分析

PDFファイル結合|パスワード設定ツール

【Anker Soundcore Liberty 4】イヤーピース紛失!代替品はAmazonで購入

JavaScriptでタイムゾーン変換!UTCとJST(日本時間)の変換方法

pnpmとは?npmとの違いとインストール方法

git switchの使い方とgit checkoutとの違い

Git push エラー回避方法|rebaseとfetchで安全にリモート変更を取り込む

CSS・JSの更新が反映されない時のキャッシュ対策方法3選

HTMLとJavaScriptモジュールでクラスを定義し、ボタンから呼び出す方法

JavaScriptでTensorFlow.jsを動的に読み込む方法|HTMLに直接書かずに機械学習を実行する

ChatGPT風リンクバッジをCSSで作成する

ffmpegでMOVファイルを逆再生する方法【音声付き対応】

MariaDB 10.9|INSERT 時だけ自動で日付を入れるカラムを追加する方法

Windows 11でタスクマネージャー以外からアプリを終了させる方法【PowerShell・コマンドプロンプト】

【Excel VBA】セルにUUIDを自動生成して埋める方法

Homebrewの「update」と「upgrade」の違い+バージョン確認方法|Macのパッケージ管理