【问题标题】:How to know if SQL table has been updated如何知道 SQL 表是否已更新
【发布时间】:2014-02-19 07:30:10
【问题描述】:

我在SQL 服务器中有一张桌子。它的数据是关于 Cisco IP-Phones 的呼叫详细信息。 我在PHP 中有一个脚本。 每当发生新呼叫时,此表的数据就会更新。 表更新后,我想获取新数据。 我怎么知道表格何时更新? 它不是在特定时间,取决于何时拨打新电话。

表格的字段是:

1. id
2. WaitingTime(This is the value that I needed)
3. dateTime (It is the date and the time of updating and inserting the new value)

【问题讨论】:

  • 什么是数据库,什么是表结构?

标签: php sql sql-update


【解决方案1】:

从技术上讲,您可以编写一个可以调用 PHP 脚本的 ON INSERT 触发器。但是,不建议这样做。这里有更多相关信息:Calling a php file by using mysql trigger

更好的方法可能是简单地在 cron 作业中运行 PHP 脚本来轮询数据库并处理任何新调用。

【讨论】:

  • 我同意 cron 作业会是更好的方法。每分钟或您选择的间隔轮询一次。作为建议,您可能希望创建一个新列“已处理”,它是一个 tinyint 值来标记该行的状态,值为 1 正在处理,0 表示未处理
  • 最初所有数据的“已处理”状态为 0,一旦处理完该行,将该值设置为 1,这样您的 cron 作业脚本将只抓取未处理记录的新行。跨度>
  • 这对服务器造成了很高的负载
  • @DiariB 答案实际上取决于数据的速度和重要性。如果您希望减少服务器负载,则可以为 cron 作业选择更高的间隔,例如每 3 或 15 分钟一次。
  • @Luke Cordingley 对ON INSERT MySQL 触发器的建议也是一个很好的基于 MySQL 的解决方案。但是,您必须使用 PHP 读取数据库。你想达到什么目的?您是否只想收集分析数据和通话时长?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-22
  • 1970-01-01
  • 2017-10-05
  • 2011-01-07
  • 2017-03-23
  • 1970-01-01
相关资源
最近更新 更多