计算插入数据库的新记录的最简单方法是什么?是否可以在加载查询中包含计数查询?
或者是否需要更复杂的东西,例如记录现有的最后一条记录并计算其后添加的所有内容?
编辑:
我有一个 cron 作业,它在直接传递给 mysql 的脚本中使用 LOAD DATA INFILE。此数据用于 php web 应用程序。作为 php web 应用程序的一部分,我需要生成每周报告,包括上周插入了多少条记录。
我无法修补 mysql,或彻底改变数据库模式/结构,但我可以添加新表或字段。我不想计算 csv 文件中的记录并将此结果存储在文本文件或其他文件中。相反,我更愿意通过查询在 PHP 中完成所有操作。
最佳答案
假设您使用 Mysql 5 或更高版本,您可以创建一个触发器,该触发器将在插入特定表时触发。请注意,“插入”触发器也会与“加载”命令一起触发。
使用触发器需要您将计数信息保存在单独的表中。基本上,您需要创建一个包含 1 行/列的新表来保存计数。然后,触发器将使用加载的数据量更新该值。
这是关于触发器的 MySQL 手册页,语法相当简单。 http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
编辑
或者,如果您不想将数据保存在数据库中,您可以在存储过程中执行“加载”操作。这将允许您在开始加载之前和加载完成之后对表执行 select count()。您只需减去结果值即可确定加载期间插入了多少行。
这是关于过程的 MySQL 手册页。 http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html
关于sql - 收集 mysql 统计信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1063522/