Первичный ключ против ключа - PullRequest
13 голосов
/ 04 февраля 2010

При создании дампа MySQL, содержащего структуру моей базы данных, в одной из таблиц показано следующее:

CREATE TABLE `completedTransactions` (
  `paymentId` int(10) unsigned NOT NULL,
  `timestamp` int(15) unsigned NOT NULL,
  `actionTaken` varchar(25) NOT NULL,
  `response` varchar(255) NOT NULL,
  `responseCode` int(5) NOT NULL,

  PRIMARY KEY  (`paymentId`,`timestamp`),
  KEY `paymentId` (`paymentId`),

Первичный ключ - это то, что я ожидал, но я не уверен, какая последняя строкао?

KEY `paymentId` (`paymentId`),

Это связано с индексом?

Ответы [ 3 ]

13 голосов
/ 04 февраля 2010

Да, ключевое слово KEY является просто псевдонимом для ключевого слова INDEX.

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
  ...
  {INDEX|KEY} [index_name] [index_type] (index_col_name,...)
      [index_option] ...

Источник: Документация MySQL: CREATE TABLE

3 голосов
/ 04 февраля 2010

KEY не является уникальным, PRIMARY KEY и UNIQUE KEY являются уникальными.

2 голосов
/ 04 февраля 2010

Цитирование документации CREATE TABLE :

KEY обычно является синонимом INDEX.
Атрибут ключа PRIMARY KEY также может быть указан как KEY, если он задан в определении столбца.Это было реализовано для совместимости с другими системами баз данных.

...