是否有主鍵列意味着該列上有索引?如果是這樣,它是什麼樣的索引?在表的主鍵上有索引嗎?
回答
對於SQL Server,我相信從以前的問題是你正在使用的,當你定義一個PRIMARY KEY時,它會自動在該列上有一個索引,默認是一個CLUSTERED索引。您可以在創建約束時定義它是否應該是NONCLUSTERED或CLUSTERED索引。
OP的+1和FYI:雖然MySQL和SQL Server使用相同的術語,但索引不包含ANSI。 Oracle不區分 - 它們只是索引。同樣重申:SQL Server - 在定義主鍵時默認創建聚集索引,但可以更改聚集索引以關聯表中的其他列。 – 2010-02-01 20:36:18
這取決於數據庫。
某些數據庫要求或自動創建主鍵索引,以強制實現主鍵的唯一性。其他人非常樂意對桌面進行全面掃描。
您使用的是哪個數據庫?
編輯:
- 的SQLServer(版本7 - 2008年)創建的索引或主鍵 - 你可以控制它是否是羣集。
- 當您添加唯一鍵約束時,舊版本的Oracle(8i,9i)也會創建索引。根據我剛剛看過的測試案例,新版本(10g)似乎並不如此。
SQL Server 2008 – Shayan 2010-02-01 20:24:20
在任何「真實」數據庫中,是的,主鍵意味着具有唯一索引。在一些數據庫中,主鍵索引也可以集中在鍵值上。
在我用過的所有數據庫中,PRIMARY KEY基本上只是一個UNIQUE索引。
我認爲這基本上是正確的。所以+1來彌補無法解釋的downvote :) – Andomar 2010-02-01 20:32:45
大聲笑,謝謝Andomar! – 2010-02-02 00:41:15
- 1. 是否有必要在主鍵列上具有PRIMARY索引和colname索引?
- 2. 找到沒有集羣索引但帶有表上的主鍵的表
- 3. MySQL:非主鍵列上的索引
- 4. 我可以擁有沒有聚集索引的主鍵嗎?我也可以擁有多值聚簇索引嗎?
- 5. 非主鍵列上的聚簇索引或非聚簇索引?
- 6. Oracle - 在表上沒有主鍵會有什麼影響嗎?
- 7. 在布爾上有一個索引是個好主意嗎?
- 8. 上鍵索引
- 9. 更改引用表上的主鍵
- 10. 主鍵(> 1列)上的索引(1列)是否有用? (SQL)
- 11. 聚集索引的外鍵VS主鍵
- 12. 刪除主鍵索引
- 13. 境界索引和主鍵
- 14. 主鍵和索引概念
- 15. 在主鍵+外鍵上創建多重索引是否有性能優勢?
- 16. NHibernate列表鍵列上的SQL索引?
- 17. SQL Server中的複合表,主鍵,外鍵和索引
- 18. 外鍵和主鍵Postgres和索引
- 19. cassandra中的行鍵,主鍵和索引有什麼區別?
- 20. 在沒有主鍵的現有表上創建主鍵在SQL Server中
- 21. 多對多表有主鍵嗎?
- 22. 在表上創建主鍵
- 23. 每個表有四個外鍵不能引用主表中的單個主鍵
- 24. Oracle數據庫:具有NULL值的索引組織表(在多列主鍵中)
- 25. 關於SQL中的索引和主鍵?
- 26. Elasticsearch索引可能有一個由多個字段組成的主鍵嗎?
- 27. 在URL列上創建主鍵或唯一索引
- 28. 索引視圖的索引基表有益嗎?
- 29. 將主鍵添加到具有現有聚簇索引的表中
- 30. Sequential Guid主鍵列應該是聚簇索引嗎?
哪個數據庫服務器? – SLaks 2010-02-01 20:21:26
我使用SQL Server 2008 – Shayan 2010-02-01 20:24:02
請檢查這篇文章http://stackoverflow.com/questions/462477/sql-primary-key-and-index – madatanic 2010-02-01 20:22:29