2010-08-13 31 views
0

我有一個名爲IntQID的字段,它是記錄在SQL數據庫中的每個帖子的ID。如果一個帖子是1533,下一個entery將是1534,1535等...如何更改SQL位的計數器位置

我最近搞砸了,並插入了一個ID爲4000的手動條目。現在計數器一直使用它作爲最後一個條目,所以現在新貼的是4001,4002,4003.

如何更改計數器返回到1533之後的下一行?

希望這是有道理的。謝謝!

+0

如果你這樣做,難道你在將來的某個時候不會冒着與4000相撞的風險嗎?在序列中沒有空位(是對於某些事物有意義的序列,還是僅僅是一個標識符)真的非常重要嗎? – FrustratedWithFormsDesigner 2010-08-13 18:25:17

+0

你如何更新值 - 這是由'UPDATE'語句,還是這是一個auto_increment列?你是否要求重置所有的值來糾正序列? – 2010-08-13 18:25:25

+0

沒有4000了,我已經更新了所有值... OMG - 這是一個auto_increment列。我更新了不符合順序的值,但現在任何時候網站上的帖子都是插入者,它從4000的範圍開始計算,而不是現有的1000範圍,我喜歡它 – BigMike 2010-08-13 18:31:26

回答

3

要AUTO_INCREMENT的值設置爲1533,使用方法:

ALTER TABLE tbl AUTO_INCREMENT = 1533; 

據我所知,你不能在不使用兩個查詢最小的ALTER TABLE陳述,它獲得現有的最高值。

+0

那麼,我會改變整個桌子,而不只是一個特定的領域?我的表名是tblQA,並且該字段是IntQID,因此ALTER TABLE tblQA AUTO_INCREMENT = 1533? – BigMike 2010-08-13 18:37:53

+0

@BigMike:這隻影響auto_increment字段 - 不管列名是什麼,因爲MySQL只允許每個表有一個auto_increment列。 – 2010-08-13 18:38:55

+0

完美 - 作品!感謝大家 – BigMike 2010-08-13 18:43:00

1

ALTER TABLE tbl AUTO_INCREMENT = 1000;

+0

+1:這是有效的,設置auto_increment值是任意的。對我而言,無論如何... – 2010-08-13 18:38:08