Это правильный синтаксис ограничения MySQL? - PullRequest
0 голосов
/ 24 февраля 2011

Я учу MySQL многим многим отношениям. Пока я изучал индекс, я нашел следующий вопрос.

Как правильно индексировать таблицу ссылок для соединения многие-ко-многим в MySQL?

Кассной ответил подробный ответ. В его ответе я нашел следующий синтаксис.

"ALTER TABLE table_table ADD CONSTRAINT pk_table1_table2 (table_1, table_2)"

Я изменил "table_table" на присоединяющуюся таблицу с именем "postcategory" и изменил "table1" на "post", "table2" на "category"

При выполнении я получил синтаксическую ошибку ..

Что я делаю не так? Мне кажется, я не совсем понял намерения Кассной.

Ответы [ 2 ]

1 голос
/ 24 февраля 2011

Ваш ответ выше перечисляет ваше утверждение ALTER TABLE как:

ALTER table postcategory add constraint pk_post_category(post,category);

Здесь вы определяете ограничение, а не индекс.Если вы пытаетесь добавить первичный ключ, он, вероятно, не должен быть многоколоночным (составным), и если это так, вам не хватает ключевого слова PRIMARY.Если вы пытаетесь добавить внешний ключ, вы пропускаете декларацию REFERENCES.

Так что, если это основной файл, я бы переписал его так:Если это внешний ключ:

ALTER TABLE `postcategory` ADD CONSTRAINT `fk_post_category` (`post`) REFERENCES `[tablename].[column]`;
0 голосов
/ 24 февраля 2011

Вы должны указать mysql, какое ограничение вы добавляете: первичный ключ, уникальный или внешний ключ. Какой полный оператор получает синтаксическую ошибку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...