文章詳情頁
MySQL如何記錄一張表格的插入操作次數
瀏覽:80日期: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. javascript - JS如何取對稱范圍的隨機數?2. 數據庫 - mysql如何處理數據變化中的事務?3. java - ehcache緩存用的是虛擬機內存么?4. 關于docker下的nginx壓力測試5. java - mongodb分片集群下,count和聚合統計問題6. android - java 泛型不支持數組,那么RxJava的Map集合有什么方便的手段可以定義獲得一串共同父類集合數據呢?7. dockerfile - 我用docker build的時候出現下邊問題 麻煩幫我看一下8. 服務器端 - 采用nginx做web服務器,C++開發應用程序 出現拒絕連接請求?9. javascript - 有什么兼容性比較好的辦法來判斷瀏覽器窗口的類型?10. python - pandas按照列A和列B分組,將列C求平均數,怎樣才能生成一個列A,B,C的dataframe
排行榜
