2012-01-05 120 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