ใช้ ALTER TABLE ... ADD COLUMN เพื่อเพิ่มคอลัมน์ created_at ที่ตั้งค่า timestamp อัตโนมัติเมื่อแถวถูกสร้าง
รูปแบบคำสั่ง
ALTER TABLE yourTableName ADD COLUMN `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
ตัวอย่างเต็ม
1. สร้างตารางโดยไม่มี created_at
mysql> create table formDemo (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Email varchar(128),
-> PhoneNumber varchar(15),
-> Country varchar(30),
-> Platform varchar(40)
-> );
2. เพิ่มคอลัมน์ created_at (ใช้ backtick เพราะมีช่องว่าง)
mysql> alter table formDemo
-> add column `created at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP;
3. ตรวจสอบโครงสร้าง
mysql> DESC formDemo;
+-------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+-------------------+----------------+ | created at | timestamp | NO | | CURRENT_TIMESTAMP | | +-------------+--------------+------+-----+-------------------+----------------+
แนวทางปฏิบัติที่ดี (Best Practice)
- ใช้ชื่อคอลัมน์
created_at(underscore) แทนcreated at(space) เพื่อไม่ต้องใช้ backtick - ใช้
DATETIMEแทนTIMESTAMPหากต้องการช่วงปีกว้างขึ้น (TIMESTAMP จำกัด 1970-2038) - เพิ่ม
updated_atพร้อมกัน:updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
ตัวอย่างแนะนำ
ALTER TABLE formDemo ADD COLUMN created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, ADD COLUMN updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;