文章詳情頁
MySQL如何記錄一張表格的插入操作次數
瀏覽:113日期: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. java中返回一個對象,和輸出對像的值,意義在哪兒2. javascript - Img.complete和img.onload判斷圖片加載完成有什么區別?3. css - chrome下a標簽嵌套img 顯示會多個小箭頭?4. vim - docker中新的ubuntu12.04鏡像,運行vi提示,找不到命名.5. docker網絡端口映射,沒有方便點的操作方法么?6. mysql - 在不允許改動數據表的情況下,如何優化以varchar格式存儲的時間的比較?7. mysql 為什么主鍵 id 和 pid 都市索引, id > 10 走索引 time > 10 不走索引?8. css3 - 純css實現點擊特效9. css - 網頁div區塊 像蘋果一樣可左右滑動 手機與電腦10. javascript - 有適合開發手機端Html5網頁小游戲的前端框架嗎?
排行榜
