Re: [請益] 資料庫裡的資料ID如何重頭算起

看板PHP作者 (nice play!)時間18年前 (2007/11/02 06:10), 編輯推噓5(508)
留言13則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《qazsd (nice play!)》之銘言: : 標題: [請益] 資料庫裡的資料ID如何重頭算起 : 時間: Mon Oct 1 00:05:54 2007 : : 現在我某個資料庫裡的第一筆資料其ID是21 : : 想要將21改成1 也就是變成名副其實(ID=1)的第一筆資料 : : 要怎麼做呢 : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 59.127.20.190 : 推 esyc:每筆資料都-20? UPDATE table SET ID = ID-20; 10/01 00:30 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 上面的推文是可以將資料庫裏現有的資料每一筆的ID都減少20沒錯 可是再增加新的一筆資料時,則還是接著舊的ID繼續算下去 例如舊的最後一筆的ID是53,執行 "UPDATE information SET s_id = s_id - 20;" 則該筆的ID變成33 但是在新增一筆時,它的ID會是54,也就是53+1 有沒有辦法讓資料庫的ID完全重頭算起阿? 而不是更改某些資料的ID而已 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.127.20.190 ※ 編輯: qazsd 來自: 59.127.20.190 (11/02 06:11)

11/02 07:53, , 1F
請舉個完整的案例吧..
11/02 07:53, 1F

11/02 07:53, , 2F
不然可以試試DELETE FROM `information`;保證成功Orz
11/02 07:53, 2F

11/02 07:55, , 3F
"資料庫的ID"這個說法實在很籠統
11/02 07:55, 3F

11/02 08:03, , 4F
看起來你不是用auto increment,那麼新id應該是自己產生的
11/02 08:03, 4F

11/02 08:04, , 5F
那你應該去改產生新id那裡,再者,從頭算起,遇到已經存在
11/02 08:04, 5F

11/02 08:05, , 6F
的ID呢? 跳過? 不管照寫? 又或者你想讓已經在資料庫裡的
11/02 08:05, 6F

11/02 08:06, , 7F
reindex緊密排列?
11/02 08:06, 7F

11/02 09:23, , 8F
我比較好奇的是,這個ID不是從頭開始,有什麼關係?
11/02 09:23, 8F

11/02 14:35, , 9F
ALTER TABLE tbl_name AUTO_INCREMENT = xxx
11/02 14:35, 9F
※ 編輯: qazsd 來自: 59.127.20.190 (11/04 13:44)

11/04 13:45, , 10F
每一筆資料的ID都是緊接著的 也就是都差1 (即公差=1)
11/04 13:45, 10F

11/04 13:46, , 11F
第一筆ID現為21 最後一筆ID現為53
11/04 13:46, 11F

11/04 13:46, , 12F
這樣一樓看懂了嗎??
11/04 13:46, 12F

11/06 20:36, , 13F
那新增一筆資料的時候是?
11/06 20:36, 13F
文章代碼(AID): #17AaxBqx (PHP)
文章代碼(AID): #17AaxBqx (PHP)