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

ดูเวลาเข้าถึง/แก้ไขล่าสุดของ Database/Table ใน MySQL

ตรวจสอบ UPDATE_TIME จาก INFORMATION_SCHEMA

ใช้ INFORMATION_SCHEMA.TABLES ดู UPDATE_TIME แต่ทำงานได้เฉพาะ Engine MyISAM

คำสั่ง

SELECT UPDATE_TIME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'yourDatabase' AND TABLE_NAME = 'yourTable';

ตัวอย่าง Case 1: MyISAM Table

SELECT UPDATE_TIME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'business' AND TABLE_NAME = 'twoprimarykeytabledemo';
+---------------------+
| UPDATE_TIME         |
+---------------------+
| 2018-11-21 16:51:50 |
+---------------------+

Case 2: Table อื่น

SELECT UPDATE_TIME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'business' AND TABLE_NAME = 'currenttimezone';
+---------------------+
| UPDATE_TIME         |
+---------------------+
| 2018-10-29 17:20:18 |
+---------------------+

Case 3: InnoDB Table (คืน NULL)

SELECT UPDATE_TIME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'business' AND TABLE_NAME = 'zerofilldemo';
+-------------+
| UPDATE_TIME |
+-------------+
| NULL        |
+-------------+

สรุป Engine Support

ทางเลือกสำหรับ InnoDB

  • ใช้ information_schema.innodb_table_stats (MySQL 5.6+)
  • Trigger บันทึก Timestamp เอง
  • Application-level Audit Log
EngineUPDATE_TIME
MyISAM✅ ทำงานได้
InnoDB❌ NULL เสมอ (MySQL < 5.7)
InnoDB✅ ทำงานได้ (MySQL 5.7+ / 8.0)