看板 Database 關於我們 聯絡資訊
※ 引述《forgmonkey (悲情城市之悲情程式猿)》之銘言: : mysql下 primary key可以設定auto increase : 他實作方式是會紀錄一個數字 : 每次Insert一筆資料就會拿這個數字當primary key 並且遞增之 : 但是我遇到一個問題... 今天我新增10個資料 : 就有主鍵1~10的這幾筆資料 : 然後刪掉4 ,6, 剩下8筆 : 然後再新增一筆 我希望他會成為主鍵4而不是11 : 能夠在SQL的語法那邊就解決掉嘛? : 還是必須每次插入都要用程式檢查最小的空欄是哪一個? : 不過我想這種方式因該load太大吧? 這問題可簡化為這樣的問題:試查詢缺漏號之前的最大流水號. 以你的例子來說,就是用一個查詢找出(3,5)這組流水號集合. 這組流水號集合分別加1,變成(4,6),就是可填補的空缺號碼. 上述查詢可這樣做: Select pkID As x From table1 Where (Select count(*) From table1 Where pkID = x + 1) = 0 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.70.151