2012-01-06 29 views
2

我有累計輸入值,其起始時間爲smallint。
我從Access數據庫讀取這些值,並將它們聚合到MySQL數據庫中。當遇到溢出時設置累計值Int16

現在我面臨的是類型smallint的輸入值是累積的,因此總是增加。

Input   Required output 
--------------------------------- 
0    0 
10000   10000 
32000   32000 
-31536   34000    //overflow in the input 
-11536   54000 
8464    74000 

我通過將原始數據轉換成一個黑洞表,並在觸發到黑洞我將其插入實際的表之前升級數據處理這些值。

我知道如何存儲以前的輸入和輸出,或者如果沒有,如何選擇最新(和最高)的插入值。
但是,處理溢出的最簡單/最快的方式是什麼,所以我得到了正確的輸出。

回答

-1

鑑於你呼籲id和列被命名爲value然後就做這一個主鍵名爲test表:

​​

這將是輸出:

------------------------ 
| id | value | output | 
------------------------ 
| 1 | 10000 | 10000 | 
| 2 | 32000 | 42000 | 
| 3 | -31536 | 10464 | 
| 4 | -11536 | -1072 | 
| 5 | 8464 | 7392 | 
------------------------ 

希望這幫助。

如果它不起作用,只需將您的數據轉換爲INT(或BIGINT獲取大量數據)。它不會受到傷害,而且這些日子的記憶很便宜。

+0

感謝您的嘗試,我理解這個想法,但輸出與問題中所需的不匹配。我想你誤解了我的意圖。 – Johan 2012-01-23 17:54:26