2014-01-15 6 views
1

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

CREATE INDEX `PRIMARY` ON `elements` (`id`) USING BTREE 

Или что-то подобное, я пробовал несколько запросов:

1. CREATE INDEX `PRIMARY` ON `elements` (`id`) USING BTREE 
2. CREATE INDEX 'PRIMARY' ON `elements` (`id`) USING BTREE 
3. CREATE INDEX `PRIMARY` ON 'elements' (`id`) USING BTREE 
4. CREATE INDEX PRIMARY ON elements (`id`) USING BTREE 
5. CREATE INDEX PRIMARY ON elements (id) USING BTREE 

Я также попробовал 5 запросов выше без «ИСПОЛЬЗОВАНИЯ BTREE». Но я всегда получаю это сообщение:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PRIMARY ON 'elements' (`id`) USING BTREE' at line 1 

Это один работает:

CREATE INDEX test ON elements (brandid); 

Я не могу обнаружить большую разницу между ними. Почему я не могу создать индекс с именем PRIMARY?

+3

PRIMARY его [Зарезервированное слово] (http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html) – Melon

+0

Но я могу создать индекс с этим именем, когда я использую phpmyadmin, почему phpmyadmin способен использовать это слово? Кроме того, когда я вставляю в кавычки "", чем это строка, чем это не зарезервировано больше, я думаю? – SheperdOfFire

+0

При создании первичного ключа вы можете использовать имя «PRIMARY». – TiiJ7

ответ

2

PhpMyAdmin создает PRIMARY KEY (который на самом деле уникальный индекс), используя синтаксис, как это:

ALTER TABLE `elements` ADD PRIMARY KEY(id) 

Вы можете иметь только один первичный ключ таблицы.

+0

Для создания первичного ключа он запрашивает индекс abaut. – Melon

+0

Спасибо, я надеялся на другое решение, но мне нужно пойти на это, так как он работает только один. – SheperdOfFire

+0

@Melon Я знаю, что он спрашивает, но я попытался создать простой индекс с одним столбцом PRIMARY в таблице, который уже имеет PRIMARY KEY, и я получаю ошибку '# 1068 - Определен множественный первичный ключ', что означает, что phpMyAdmin на самом деле пытается создать ключ PRIMARY при указании на создание индекса с именем PRIMARY. – Zagor23

Смежные вопросы