2012-01-05 4 views
1

Google в основном ответит на вопрос о PRIMARY KEY/UNIQUE KEY разница. Но как насчет KEY/UNIQUE KEY в MySQL? Разве KTK в MySQL однозначно идентифицирует кортеж?MySQL KEY/UNIQUE KEY

ответ

2

No, KEY является псевдонимом для INDEX. INDEX не обязательно должен быть уникальным. Если KEY (INDEX) однозначно идентифицировал кортеж (ряд), то это UNIQUE KEY (или PRIMARY KEY в зависимости от того, как вы определили этот ключ).

+0

Это помогло. Спасибо :) – user1132121

2

Ни в коем случае - столбец с ключом может иметь двойные значения, ключ помогает с их быстрым доступом. Уникальный ключ не позволит вставить строку с уже существующим значением в этом столбце.

+1

«столбец с ключом может легко иметь повторяющиеся значения» - неужели это противоположность общепринятому определению ключа? – onedaywhen

+1

не очень! Ключ - это не то же самое, что уникальный ключ - для последнего общепринятое определение и поведение MySQL должны не принимать дубликаты. –

+1

Контекст здесь, без сомнения, является базами данных, и в этом контексте «ключ» является сокращением «ключа кандидата». Просмотрите любую родовую (не-mySQL) книгу, чтобы обнаружить это, например. [это определение в первой книге, которую я должен был передать:] (http://books.google.co.uk/books?id=TR8f5dtnC9IC&pg=PT83&lpg=PT83&dq=Then+K+is+a+candidate+key+ (или + просто + клавиша + для + краткости) + дл & источник = бл & отс = jrP6trfE5S & сиг = XuY1FsBNxGjbAPJmuFKMn3DXbEA & гл = еп & са = Х & е = 2bUGT97PBMeX8gOTvZnEAQ & вед = 0CB4Q6AEwAA # v = OnePage & д = Тогда% 20K% 20is% 20a% 20candidate% 20key% 20 (или% 20just% 20key% 20for% 20short)% 20for & f = false) – onedaywhen

0

В теории базы данных «ключ» является синонимом уникального ограничения. Некоторые системы управления базами данных используют индекс (физический) для реализации уникального ограничения (логического) и называются «уникальным индексом».

Для mySQL-продукта KEY является синонимом уникального индекса, и я считаю, что использование является интуитивно понятным.

+0

У вас есть ресурс, который говорит, что 'key' является синонимом уникального ограничения? Я не читал нигде, что 'key' == уникальное ограничение. –

+0

@ N.B .: Думаю, вам будет проще искать источники, которые «ключ» не означает уникальность. Начните с «superkey», затем перейдите к «кандидатному ключу» (минимальному суперключу), «первичному ключу» (произвольному ключу кандидата), «внешнему ключу» (ссылается на ключ-кандидат) и за его пределами. – onedaywhen

+0

Итак, нижняя строка заключается в том, что у вас нет источника, подтверждающего, что ключ == уникальный ключ? –

0

Я знаю, что это старая нить, но @oneday, если здесь правильно. В теории баз данных термин «ключ» относится к кандидату или супер-ключу, а ключ-кандидат - это минимальный супер-ключ. Первичный ключ выбран как один из ключей-кандидатов, если несколько, поэтому «ключ» уникален. В случае необходимости я могу ссылаться на мою книгу БД, используемую в университете.

+0

Да, точно! @onedaywhen – Susinthiran