2013-07-13 4 views
0

я попробовал следующий запрос (он был написан не мной, но был включен в исходный код из Интернета)MySQL первичный ключ должен быть записан в скобках

CREATE TABLE `city_list_count` (
    `city_created` date NOT NULL, 
    `count_created` int(8) unsigned NOT NULL, 
    PRIMARY KEY `city_created` 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

Он дал мне следующую ошибку:

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 ') ENGINE=InnoDB DEFAULT CHARSET=utf8' at line 5

ответ

0

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

CREATE TABLE `city_list_count` (
    `city_created` date NOT NULL, 
    `count_created` int(8) unsigned NOT NULL, 
    PRIMARY KEY (`city_created`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

Я не мог найти объяснения этого в любом месте. Однако это сработало для меня. Просто хотел поделиться этим с другими, если кто-то столкнулся с той же проблемой.

+1

Хотя это не плохо, чтобы отправить вопрос + ответ на какой-то проблемы, вы столкнулись, я бы рекомендовал редактируя вопрос и ответ, так что вопросная часть действительно имеет только вопрос, а часть ответа содержит ответ. –

+0

Изменен вопрос. Теперь он содержит только описание проблемы. Отправил мой ответ отдельно. – user2513149

1

Согласно MySQL CREATE TABLE syntax, вам нужно скобки до и после списка столбцов для ограничения:

[CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) [index_option] ...

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