2014-03-14 82 views
0

我有一個表'rack',在插入第一個值的時候,primary_key(列名:rack_db_key)的值爲'0'。 儘管主鍵初始化爲標識(1,1),但值仍從0開始。從0開始的表的主鍵

如何才能使它從1開始

+0

如果你關心這些標識符的數值,你使用他們錯了。您應該將它們視爲適合數字列的不透明斑點。它們只能用於唯一標識表中的行,並且不應該向用戶顯示 - 爲什麼它很重要?它們採用什麼*值? –

+0

你應該檢查是否有觸發器,約束上table.use sp_help將表名定義檢查 – KumarHarsh

回答

0

您的主鍵列初始值設置爲1(我希望rack_db_key是自動遞增列)

$sql = "ALTER TABLE MY_TABLE AUTO_INCREMENT = 1"; 

如果你的列rack_db_key不自動增量比你可以用下面的查詢

$sql = "ALTER TABLE MY_TABLE ADD rack_db_key INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    ADD INDEX (rack_db_key);"; 
設置它
+0

我已經試過了。它沒有什麼區別。創建表時,auto_increment被初始化爲1。 – Soumpunk

+0

分享您插入查詢和表結構 –

+0

使用此查詢來形容你的表「SHOW cretae表your_table」 –

0

如果您在列設置標識通常從1開始,否則你的主鍵絕對是零

+0

但它不「T。 – silfrede

+0

我知道,開始此查詢工作在sqlserver200r2 – Soumpunk

+0

分享你的表結構。根據我的研究,有一種方法可以解決這個限制,但不推薦。 – silfrede

0

這可能是因爲:

您可能必須截斷表「架子」,然後應用dbcc checkident(rack,reseed,0)

但在SQL每當你截斷表時,它補種爲0(自動)。

因此ü應使用dbcc checkident(rack,reseed,0)只有當你有delete表。