Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Truy vấn MySQL hiển thị database sắp xếp theo ngày tạo?

Liệt kê database MySQL sắp xếp theo thời gian tạo

Sử dụng INFORMATION_SCHEMA.TABLES nhóm theo TABLE_SCHEMA, lấy MAX(CREATE_TIME) làm đại diện cho ngày tạo database.

Truy vấn

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;

Kết quả mẫu

+---------------------+---------------------+---------------------+
| 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 |
| test3               | 2019-03-12 20:29:12 | NULL                |
| mysql               | 2019-02-26 07:10:49 | 2019-04-03 11:38:56 |
| ...                 | ...                 | ...                 |
+---------------------+---------------------+---------------------+

Giải thích

  • TABLE_SCHEMA = tên database
  • CREATE_TIME của bảng = thời gian tạo bảng
  • MAX(CREATE_TIME) = bảng tạo sớm nhất trong database ≈ ngày tạo database
  • UPDATE_TIME = lần cuối bảng bị sửa (NULL cho InnoDB)
  • Database hệ thống (mysql, information_schema, performance_schema, sys) có CREATE_TIME rất sớm

Lưu ý

  • Không có cột "database create time" trực tiếp trong MySQL
  • Phương pháp này ước lượng dựa trên bảng cũ nhất
  • Nếu xóa bảng cũ nhất, kết quả không chính xác
  • MySQL 8.0: Có thể dùng INFORMATION_SCHEMA.SCHEMATA nhưng cũng không có create_time

Cách khác: Xem thư mục data

-- Trên Linux
ls -lt /var/lib/mysql/ | grep ^d

-- Trên Windows
dir /od "C:\ProgramData\MySQL\MySQL Server 8.0\Data\"

Thư mục database tạo sớm nhất = database cũ nhất.