【mysql】idや更新日時を自動記入させよう

ALTER TABLE table名 ADD 変数名 変数型;

でテーブルに新しいカラムを追加できますが、コマンドの最後にキーワードを挿入すると、特殊な属性を持たせることができます。

"NOT NULL => 空欄にできない”
"PRIMARY KEY => 重複する値を入れられない"
"AUTO_INCREMENT => 自動で数値を挿入" など。

ユーザーIDの様に空欄や重複があると困るカラムを作る時に重宝します。

ALTER TABLE <table_name> ADD user_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;

空欄のままのレコードが挿入されてもAUTO_INCREMENTが自動で数値を記入してくれます。



レコードの制作日時や更新日時はそれぞれ、

ALTER TABLE <table_name> ADD created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE <table_name> ADD updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 

"DEFAULT CURRENT_TIMESTAMP"により現在時刻(作られた時の時刻)をデフォルト値に持ちます。
"ON UPDATE CURRENT_TIMESTAMP"によって更新時に時刻が書き換えられます。