2012-01-05 123 views
1

Google主要回答有關PRIMARY KEY/UNIQUE KEY區別的問題。但在MySQL中,KEY/UNIQUE KEY呢? MySQL中的``KEY`唯一標識一個元組嗎?MySQL KEY/UNIQUE KEY

回答

2

不,KEYINDEX的別名。 INDEX不一定是唯一的。如果KEY(INDEX)唯一標識了一個元組(行),則它是UNIQUE KEY(或PRIMARY KEY,具體取決於您如何定義該密鑰)。

+0

這有幫助。謝謝:) – user1132121 2012-01-08 22:55:58

2

完全沒有 - 帶鍵的列可以輕鬆地重複值,該鍵有助於快速訪問它們。唯一鍵不允許在該列中插入具有已有值的行。

+1

「帶鍵的列可以很容易地具有重複值」 - 當然,這與普遍接受的密鑰定義相反? – onedaywhen 2012-01-05 15:48:04

+1

不是真的!一個關鍵不是唯一的關鍵 - 對於後者,普遍接受的定義和MySQL的行爲是不接受重複的 – 2012-01-05 15:57:59

+1

這裏的上下文毫無疑問是數據庫,在這種情況下,「關鍵」是「候選關鍵字」的縮寫。查看任何通用(非mySQL)書籍以發現此例如[我必須在第一本書中定義這個定義:](http://books.google.co.uk/books?id=TR8f5dtnC9IC&pg=PT83&lpg=PT83&dq=Then+K+is+a+candidate+key+(or + just +爲+短鍵+)+爲&源= BL&OTS = jrP6trfE5S&SIG = XuY1FsBNxGjbAPJmuFKMn3DXbEA&HL = EN&SA = X&EI = 2bUGT97PBMeX8gOTvZnEAQ&VED = 0CB4Q6AEwAA#v = onepage&q =然後%20K%圖20是%20A%20candidate%20key%20(或%20just%20key%20for% 20short)%20for&f = false) – onedaywhen 2012-01-06 08:51:34

0

在數據庫理論中,「關鍵」是唯一約束的同義詞。一些數據庫管理系統使用索引(物理)來實現唯一的約束(邏輯),並被稱爲「唯一索引」。

對於mySQL產品,KEY是非唯一索引的同義詞,我認爲這種用法是違反直覺的。

+0

你有沒有說'key'是唯一約束的同義詞的資源?我沒有閱讀任何'key' ==唯一約束。 – 2012-01-05 16:20:11

+0

@ N.B .:我認爲你可以更輕鬆地搜索「關鍵」並不意味着唯一性的來源。從「superkey」開始,然後進行到「候選鍵」(最小超級鍵「),」主鍵「(任意候選鍵」),「外鍵」(引用候選鍵)並超出。 – onedaywhen 2012-01-06 08:57:44

+0

所以底線是你沒有確認密鑰==唯一密鑰的來源? – 2012-01-06 12:09:54

0

我知道這是一箇舊線程,但@onedaywhen在這裏是正確的。在數據庫理論中,術語'密鑰'是指候選或超級密鑰,候選密鑰是最小超級密鑰。主鍵被選爲候選鍵之一(如果有幾個),因此'鍵'是唯一的。如有必要,我可以參考我在大學使用的數據庫書籍。

+0

是的,確切! @onedaywhen – Susinthiran 2015-06-01 17:38:37