文章詳情頁
MySQL如何記錄一張表格的插入操作次數
瀏覽:104日期:2022-06-13 16:02:48
問題描述
要求是表里插入記錄時,name是日期+當天它是第幾個插入的,比如20170408003。
我的解決辦法是:mysql里存一個count;一個觸發器,插入一條記錄后count+1;一個事件,每天0點count=0;每次插入數據,name是當前日期+(count+1)。
可是問題來了,這個count存在哪里呢?系統變量是不能創建的,用戶變量是會話級別的,客戶端連接斷了就沒了。
所以這個count該存在哪里呢,難不成新建一個表來存?
求大神指點~
問題解答
回答1:這個問題只要統計次數的話設一個自增id列就好了嘛,加一個時間戳字段,沒必要一定放一個字段里吧 要做統計的時候取每天的最大和最小id做個減法就出來了
回答2:我覺得再存一張表吧
回答3:個人可能會通過文件緩存做 (通過數據表,redis之類的邏輯差不多)
緩存數據 [’count’ => 0, ’day’ => ’yyy-mm-dd’] //count => 記錄當前記錄數, day =>當前記錄的是哪一天的數據
每次有新數據插入的時候根據day 確認count是否需要重置并更新day為當前日期
count++
更新緩存文件
如果有redis的話還是用它吧.
回答4:該問題并非統計,實則是討論如何實現自增id。如果能夠使用redis該問題能夠得到妥善解決,因為redis是單線程的,且提供原子的incrAndGet()命令INCR和原子的getAndSet()命令GETSET。
相關文章:
1. Docker for Mac 創建的dnsmasq容器連不上/不工作的問題2. docker安裝后出現Cannot connect to the Docker daemon.3. javascript - 用js實現遠程js調用時出現時間機制問題怎樣解決?4. javascript - 請教空白文本節點的問題5. 刷新頁面出現彈框6. ios - 類似微博首頁,一張圖的時候是如何確定圖大小的?7. javascript - 前端開發 本地靜態文件頻繁修改,預覽時的緩存怎么解決?8. javascript - 怎么看網站用了什么技術框架?9. PC 手機兼容的 編輯器10. java報錯Communications link failure 該如何解決?
排行榜
