2008年7月23日 星期三

神奇的數字"4294967295"

今天在寫入資料庫的時候, 新增第一筆資料後就無法繼續下去
原來無法新增第二筆資料的原因為 id重複了
後來查看該筆資料, 發現該筆資料的id為4294967295
這就奇怪了, 第二筆資料在還未新增至資料庫前id並非4294967295
為何exception message顯示4294967295 key值重複
而且我的id是隨時間產生, 怎麼每次錯誤都是顯示 4294967295 key值重複
一開始我是抱持著這個想法, 到底我的id是在什麼時候被改變的呢?
在trace後發現在執行 command.ExecuteNonQuery() 前, id都是正常的尚未改變過
怎麼一執行到這行就發生exception了呢? 而且還指示 id為4294967295 key值重複
上網查了一下原來 4294967295 是 FFFFFFFF 也就是 4bytes, 而UINT型態剛好就是4bytes
這下子真相終於大了一個白
因為我的column type 設成INT, 而我的data是BIGINT, 所以~~~~~~~~~就是這樣!!

沒有留言:

張貼留言