2015-10-23 4 views
0

Я работаю над головой SQL-книги, используя MySQL, и я сталкиваюсь с ошибкой при попытке запустить код в книге. Я уверен, что ошибка очень очевидна, но у меня все в тупике. Идея состоит в том, чтобы добавить первичный ключ к таблице project_list, изменив имя текущего столбца и установив его как первичный ключ. сообщениеОтслеживание основной ошибки 1064

ALTER TABLE project_list 
CHANGE COLUMN number proj_id INT NOT NULL AUTO_INCREMENT, 
ADD PRIMARY KEY ('proj_id'); 

Ошибка: Код

Ошибка: 1064. У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «» proj_id «)» в строке 3.

+0

Это из-за неправильного вида котировок. Одиночные кавычки в '' proj_id'' делают это строковым литералом, а не именем столбца. Они должны быть обратными, или это должно быть не указано. –

+0

Примеры с соответствующим цитированием [можно найти в этом ответе] (http://stackoverflow.com/questions/11321491/when-to-use-single-quotes-double-quotes-and-backticks/11321508#11321508) –

ответ

1
ADD PRIMARY KEY ('proj_id') 

пытается установить первичный ключ к символьной строке, а не колонка. Вы должны либо использовать proj_id по себе:

... ADD PRIMARY KEY (proj_id); 

или версию обратно-тик (с `, а не '):

... ADD PRIMARY KEY (`proj_id`);