我需要在我的腦海中清除以下內容。唯一性索引和約束/與主鍵的關係
當我創建一個沒有主鍵或唯一約束的表時,我得到一個平面文件。
當我創建主鍵時,會創建一個主索引作爲結果,並且這個索引保持主鍵的唯一性,對嗎?所以我不能添加重複的值。
因此,如果我在任何列上創建索引,是否強制該列具有唯一值?或者,這取決於使用關鍵字UNIQUE
進行索引創建?
最後,每次我聲明具有UNIQUE
約束的列時,是否意味着索引已創建,因此這些操作是可以互換的?
我需要在我的腦海中清除以下內容。唯一性索引和約束/與主鍵的關係
當我創建一個沒有主鍵或唯一約束的表時,我得到一個平面文件。
當我創建主鍵時,會創建一個主索引作爲結果,並且這個索引保持主鍵的唯一性,對嗎?所以我不能添加重複的值。
因此,如果我在任何列上創建索引,是否強制該列具有唯一值?或者,這取決於使用關鍵字UNIQUE
進行索引創建?
最後,每次我聲明具有UNIQUE
約束的列時,是否意味着索引已創建,因此這些操作是可以互換的?
當我創建一個主索引作爲結果所創建的主鍵和 這是該指數維持在該主鍵的唯一性, 吧?
是,雖然主鍵索引是不完全一樣,唯一索引(它比「常規」唯一索引某些優先級。
所以,如果我創造的任何列的索引做這種強制列 具有獨特的價值?或者說,取決於使用關鍵字UNIQUE的 創建索引?
在表列不會自動限制的索引列中的值是唯一的,除非您明確使用UNIQUE INDEX
。
最後我每次申報具有唯一約束的列的時間不 這意味着創建了索引,因此這些行動是 互換?
通過UNIQUE INDEX
創建一個唯一約束。他們是同一件事。
因此,無論何時我創建一個'UNIQUE'在列上創建一個新的索引? – Cratylus 2013-03-12 18:41:07
@Cratylus - 是的,在這種情況下'UNIQUE'是'UNIQUE KEY'的縮寫。 MySQL開發人員將KEY部分設爲可選項,以便於使用。 – Perception 2013-03-12 18:42:28
因此,如果例如我聲明'INDEX UNIQUE'列'A','B'它是完全相同的創建一個複合主鍵?這也涉及到級聯,即參考完整性還是唯一性? – Cratylus 2013-03-12 18:44:34
那麼,如果'INDEX UNIQUE'完全一樣的工作,那麼'UNIQUE'約束的目的是什麼? – Cratylus 2013-03-12 20:31:48