2015-08-29 5 views
1

Прежде всего я просмотрел много вопросов и гугле это много, ни один из них не решить мою проблему ..Mysql Workbench не может выбрать Foreign Key

Я создаю свои таблицы с помощью MySQL Workbench 6.3. Я создал их, используя только gui, а не один запрос. После этого я попытался создать некоторые внешние ключи для столбцов int(11), но GUI не позволяет мне это делать.

Вот мой Show Create Table 'tableName'

CREATE TABLE `item` (
    `id` int(11) NOT NULL, 
    `description` varchar(300) NOT NULL, 
    `maker` varchar(200) NOT NULL, 
    `model` varchar(200) NOT NULL, 
    `condition` varchar(200) NOT NULL, 
    `locationId` int(11) NOT NULL, 
    `categoryId` int(11) NOT NULL, 
    `userId` int(11) NOT NULL, 
    `lendTermsId` int(11) NOT NULL, 
    `itemOptionsId` int(11) NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `id_UNIQUE` (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

А другой;

CREATE TABLE `location` (
    `id` int(11) NOT NULL, 
    `type` varchar(200) NOT NULL, 
    `coordinateLat` varchar(200) NOT NULL, 
    `coordinateLong` varchar(45) NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `id_UNIQUE` (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

Я пытаюсь создать внешний ключ между location.id и item.locationId. Workbench GUI не позволяет мне выбрать флажки ...

enter image description here

Как вы можете видеть из этого изображения я не могу выбрать флажок или выберите значение COMBOBOX ..

EDIT: I может управлять этим с помощью запроса, но в некоторых проектах много таблиц, не хотите делать все с запросами ... Есть ли что-то, что мне не хватает в workbench?

Заранее спасибо.

+0

Почему 'java' tag? –

+0

Отредактированные теги .... –

+0

Кажется, это ошибка с Workbench.Как только я переключил ключевые столбцы из столбцов CHAR в столбцы BINARY, Workbench позволяет мне использовать внешний ключ без проблем. –

ответ

0

Попробуйте следующее заявление Alt

ALTER TABLE `emp`.`item` 
ADD INDEX `location_idx` (`categoryId` ASC); 
ALTER TABLE `emp`.`item` 
ADD CONSTRAINT `location` 
    FOREIGN KEY (`categoryId`) 
    REFERENCES `emp`.`location` (`id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION; 

Я проверил через проверку GUI этот скриншот enter image description here

+0

Спасибо за помощь, но я уже знаю, как это сделать с запросом, моя проблема связана с графическим интерфейсом. Есть ли что-то, что мне не хватает в workbench? –

+0

Это действительно странно, какая версия рабочего места вы используете? –

1

Это может быть немного поздно, чтобы ответить на этот вопрос, но, В последнее время я испытываю этот вопрос в Workbench GUI, и это было вызвано различием в DataType.

Убедитесь, что оба поля имеют один и тот же DataType, как представляется, для устранения проблемы.

Надеюсь, это поможет.

0

Как user4115463 сказал, что это связано с различием в DataType. Убедитесь, что обе клавиши имеют один и тот же тип данных:

  • поле Datatype должно содержать ту же самую строку (INT и INT(10) являются не же)
  • В (в двоичной) флажок должен соответствовать
  • ООН (Unsigned) флажок должен соответствовать

при выборе флажка MySQL Workbench пытается заполнить выпадающий список рядом с флажком с соответствующими столбцами, и если он может 't найти соответствующие столбцы, он решает молча игнорировать щелчок на флажке вместо.

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