Re: [SQL ] 恭賀開板順便發問
※ 引述《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
討論串 (同標題文章)
Database 近期熱門文章
PTT數位生活區 即時熱門文章