2014-04-27 27 views
0

我運行了一個刪除腳本來刪除id大於0的所有行以清除表,現在當我嘗試向表中添加行時,id開始離開之前的地方。我怎樣才能刪除表中的信息,以便ID再次從1開始?sql表中的標識id列不是從1開始

+1

戲是否真的重要?通常當我聽到類似這樣的問題時,這是因爲開發人員正試圖爲身份價值賦予意義,這幾乎從來都不是一個好設計。 –

+1

你爲什麼在意?自動遞增ID(MySQL)或序列(Oracle)的唯一目的是提供唯一標識符 - 其值應該不重要。如果你確實試圖重置它,那麼任何使用原始作爲外鍵的東西現在都會中斷。 – mortsahl

+0

也許他正在測試一個導入例程,並且每次都喜歡從1開始,因爲他以這種方式熟悉數據。 –

回答

3

刪除語句不會重置標識值。如果您希望標識值被重置,請使用截斷表命令。像這樣的東西..

TRUNCATE TABLE Table_Name 

這將清空表並重置標識值。

只有在想要刪除所有行時才使用TRUNCATE。因爲它不允許你使用WHERE子句。

0

我不認爲這是可能的在同一張表。你正在使用哪個數據庫?在之前版本的MS Access中,壓縮數據庫用於工作,但不再是這樣。我不認爲SQL Server也支持這一點。唯一的方法是將該表中的記錄複製到新表中,刪除舊錶並將新表重命名爲舊錶名。

0

在MS-SQL,你可以有DBCC CHECKIDENT (yourtable, reseed, 0)

相關問題