Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เพิ่มคอลัมน์ created_at พร้อม timestamp อัตโนมัติใน MySQL

ใช้ 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;