对于InnoDB表,CREATE_TABLE字段是否会自动更改?
答案 0 :(得分:5)
对于InnoDB,CREATE_TIME
中的INFORMATION_SCHEMA.TABLES
值基于表格FRM文件的修改时间。因此,这很可能代表您上次运行ALTER TABLE
或OPTIMIZE TABLE
。
答案 1 :(得分:4)
information_schema的create_time和update_time字段对应于表的基础存储的创建/修改时间戳。
使用MyISAM,每个表都有自己的文件,因此返回该文件的创建/修改时间戳。
但是对于InnoDB,所有表的存储都在一个文件ibdata中,因此只有一个创建/修改时间戳。为所有InnoDB表返回一个时间戳。
答案 2 :(得分:0)
我使用的是MySQL 5.7.17。
如果您具有MyISAM表,即使您具有Optimized MyISAM表,它也会显示正确的创建表日期。 (显示表状态,其中name =“ tablename”;)
如果您有innodb表,它将显示错误的创建日期,因为一旦在内部优化了innodb表,它将使用alter table,因此它将显示您创建的表的日期和时间,这将是优化后的日期。 )
对于此版本,我们需要使用information_schema.tables来获取表创建日期。