12

大约一年半以来,我一直在维护一个 MySQL 表,其中包含从 PHP 代码插入的数据行。真的很愚蠢,我知道,我没有包括timestamp这些行的插入。

有什么可能的方法可以timestamp通过一些元数据或其他方式检索这些行的创建?(MySQL 或 PHPMyAdmin 或其他一些可能的方式?)

4

4 回答 4

9

不幸的是,在这种情况下您无能为力。如果 MySQL 有一个秘密时间戳字段,则表的一般大小将每行增加 4 个字节

于 2013-05-31T08:18:55.477 回答
4

如果它保存在您的一台服务器上的某个位置,那么您可以获得该时间戳的唯一方法。您有一个 Web 服务器,您可以为它保存日志存档。或者其他一些有 PHP 脚本向数据库发出请求的活动时间戳的地方。

假设您有 Web 服务器日志,并且每个或大部分 PHP 脚本活动都有一个条目,那么您可能可以解析该日志,获取时间戳并将其映射到数据库中的行。如您所见,这非常费力,但并非完全不可能。

至于 MySQL(或任何其他数据库),它们通常不会保留大量过去信息的存档。主要原因 - 由应用程序的开发人员或设计人员决定应该保留哪些信息。数据库仅保留其所有部分正常运行所需的数据。

刚刚有了一个想法,那就是您有事务日志存档(我真的很怀疑),然后您可以在数据库备份上重新运行它们,并且它们(事务日志)可能包含正在添加或更改的行的时间戳.

于 2013-05-31T08:27:47.837 回答
0

如果幸运的话,其他表中的记录依赖于您感兴趣的记录。这些记录在创建时可能有时间戳。因此,当您关心的记录可能已经创建时,您至少有一个大致的了解。除此之外,主键通常增长的速率可能会在创建记录时提供另一个估计值。

但是,是的,这些只是估计。其他现有答案中提到了其他方法。

于 2021-02-18T10:30:12.693 回答
-1

这是一种方法: https ://www.marcus-povey.co.uk/2013/03/11/automatic-create-and-modified-timestamps-in-mysql/

我希望这可以帮助

于 2016-10-04T07:51:07.187 回答