【发布时间】:2012-02-13 01:22:09
【问题描述】:
如何使用触发器来简单地使用上次编辑表格的时间来更新表格?我知道通过使用触发器它是“针对每一行”,但如果有人插入不止一行,那么一遍又一遍地插入或更改表格是毫无意义的。有什么方法可以做到这一点而无需一遍又一遍地这样做?
我希望能够只为所有插入操作一次,而不是一次又一次地完成。如果不是,我想我可以通过包装器强制它。
编辑 1: 那么我想解释一下更多的设计。
我将在另一个数据库中创建一个表来处理诸如聊天或玩家“邮箱”之类的 last_updated 数据,以及另一个用于开发诸如任务、技能、物品等表的数据。我希望能够知道上次更新表的时间,以便在我去扫描表以查看新内容之前轻松查看。
基本上这是我想做的(或类似的事情),我也在使用 PHP,所以它可能是代码中基于 PHP 的方法,但 SQL 应该是一种标准。我不会做完整的代码,而是半可运行的。
last_modified=mysql_query("select last_modified from various_stats.table_last_updated where database_name=`database_name` and `table_name`");
if(last_modified>last_checked_time){
data_to_get_updated=mysql_query("select something from various_<something>.table_name where last_modified>last_checked_time");
}
else{
do_nothing;
}
编辑 2:我正在使用 InnoDB,因此我无法使用信息架构的 update_time,因为它永远不会改变。
【问题讨论】:
-
提供有关您的设计的更多详细信息 - 可能有更好的方法来满足您的需求。
-
我不知道您还需要什么数据,但我可以提供如何为 table_last_updated 表中的数据构建表。