MySQL如何记录一张表格的插入操作次数
高洛峰
高洛峰 2017-04-17 16:48:41
[MySQL讨论组]

要求是表里插入记录时,name是日期+当天它是第几个插入的,比如20170408003。

我的解决办法是:
mysql里存一个count;
一个触发器,插入一条记录后count+1;
一个事件,每天0点count=0;
每次插入数据,name是当前日期+(count+1)。

可是问题来了,这个count存在哪里呢?
系统变量是不能创建的,用户变量是会话级别的,客户端连接断了就没了。

所以这个count该存在哪里呢,难不成新建一个表来存?

求大神指点~

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
PHPz

这个问题只要统计次数的话设一个自增id列就好了嘛,加一个时间戳字段,没必要一定放一个字段里吧 要做统计的时候取每天的最大和最小id做个减法就出来了

巴扎黑

我觉得再存一张表吧

PHPz

个人可能会通过文件缓存做 (通过数据表,redis之类的逻辑差不多)

  1. 缓存数据 ['count' => 0, 'day' => 'yyy-mm-dd'] //count => 记录当前记录数, day =>当前记录的是哪一天的数据

  2. 每次有新数据插入的时候根据day 确认count是否需要重置并更新day为当前日期

  3. count++

  4. 更新缓存文件

如果有redis的话还是用它吧.

高洛峰

该问题并非统计,实则是讨论如何实现自增id。如果能够使用redis该问题能够得到妥善解决,因为redis是单线程的,且提供原子的incrAndGet()命令INCR和原子的getAndSet()命令GETSET。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号