上次更改 InnoDB 表结构的日期

Bre*_*bad 2 mysql innodb alter-table datetime

我想知道如何确定ALTER TABLE...对给定表进行的最后一次更改 ( ) 是什么时候。

有一个旧答案可用,但不幸的是它不适用于 InnoDB 表。

看看frm文件日期时间,这行得通吗?

-rw-r-----   1 mysql    mysql       18622 Oct 24 21:07 mysql/data/mydb/mytable.frm
-rw-r-----   1 mysql    mysql     2114688 Oct 28 06:26 mysql/data/mydb/mytable.ibd
Run Code Online (Sandbox Code Playgroud)

Oct 24 21:07似乎大致对应于上次执行结构更改的时间。
那是可靠的信息吗?

Rol*_*DBA 5

我会说是,因为 anyALTER TABLE必须将最后一次写入的时间戳更改为.frm.

要拉出 UNIXTIME,你可以这样做

ls -l --time-style=+"%s" mysql/data/mydb/mytable.frm | awk '{print $6}'
Run Code Online (Sandbox Code Playgroud)

或获取日期时间

ls -l --time-style=+"%Y-%m-%d %H:%M:%S" mysql/data/mydb/mytable.frm | awk '{print $6,$7}'
Run Code Online (Sandbox Code Playgroud)

MySQL 确实提供了一个UPDATE_TIME列,但它用于更改数据或索引。