文章詳情頁
MySQL如何記錄一張表格的插入操作次數
瀏覽:95日期: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。
相關文章:
排行榜
