แสดงรายชื่อ Database เรียงตาม Creation Time
ใช้ INFORMATION_SCHEMA.TABLES รวม CREATE_TIME แล้ว GROUP BY Database
คำสั่ง
SELECT
TABLE_SCHEMA AS ALL_DATABASE_NAME,
MAX(CREATE_TIME) AS creationTime,
MAX(UPDATE_TIME) AS updatingTime
FROM INFORMATION_SCHEMA.TABLES
GROUP BY ALL_DATABASE_NAME
ORDER BY creationTime DESC;
ผลลัพธ์ตัวอย่าง
+---------------------+---------------------+---------------------+ | ALL_DATABASE_NAME | creationTime | updatingTime | +---------------------+---------------------+---------------------+ | test | 2019-04-03 11:37:58 | 2019-04-03 11:38:55 | | hb_student_tracker | 2019-03-19 03:54:32 | NULL | | sample | 2019-03-15 00:04:29 | 2019-03-08 16:06:09 | | ... | ... | ... | +---------------------+---------------------+---------------------+
คำอธิบาย
MAX(CREATE_TIME)- วันที่สร้างตารางล่าสุดใน Database นั้น = ประมาณ Creation DateMAX(UPDATE_TIME)- วันที่แก้ไขล่าสุดGROUP BY TABLE_SCHEMA- รวมตาม Database- InnoDB: UPDATE_TIME อาจเป็น NULL (ขึ้น Version)
- System DB (mysql, information_schema, performance_schema, sys) มี CREATE_TIME เก่า
ข้อจำกัด
- ไม่ใช่ Creation Time ของ Database ตรงๆ (MySQL ไม่เก็บ)
- ใช้ตารางล่าสุดแทน
- DROP/CREATE Table จะเปลี่ยนค่านี้
ทางเลือก: MySQL 8.0 Data Dictionary
SELECT SCHEMA_NAME, CREATED FROM INFORMATION_SCHEMA.SCHEMATA ORDER BY CREATED DESC;
MySQL 8.0+ เก็บ Created Timestamp ของ Schema โดยตรง