2013-12-01 4 views
0

Я не могу выполнить внешний ключ в MySQL 5.5 (используя XAMPP). Вот код, который я пытаюсь выполнить:Невозможно выполнить внешний ключ в MySQL 5.5 (с использованием XAMPP)

create table Category (
    Category_ID int, 
    CategoryName varchar(50), 
    Primary Key (Category_ID) 
); 


create table SubCategory (
    SubCategory_ID int, 
    Category_ID int, 
    SubCategoryName varchar(50), 
    Primary Key (SubCategory_ID), 
    Foreign Key Category_ID references Category(Category_ID) 
); 

Я попытался заменить Int с междунар (10), но это не помогло.

Кроме того, я пробовал добавить CASCADE, но это не сработало.

Даже добавление CONSTRAINT внутри и снаружи стола не работает.

Ошибка Я продолжаю получать это:

1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом со ссылками «Категория (категория_ID)).

Помогите.

ответ

1

вам нужно обернуть внешний ключ с скобкой, как:

create table SubCategory (
    SubCategory_ID int, 
    Category_ID int, 
    SubCategoryName varchar(50), 
    Primary Key (SubCategory_ID), 
    Foreign Key (Category_ID) references Category(Category_ID) 
    ------------^-----------^ 
); 
+0

Спасибо так много Mamdouh alramadan. Интересно, почему MySQL не может сказать так более четко. Компиляторы, такие как Java, C/C++ и любой другой язык программирования, намного превосходят MySQL в этом отношении. – user2250246

+0

Это действительный аргумент, хотя вам нужно узнать, что всякий раз, когда Mysql говорит, что он что-то рядом, сделайте шаг назад и посмотрите, что случилось в предыдущей команде –

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