您的位置:首頁技術文章
文章詳情頁

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。

相關文章:
国产综合久久一区二区三区