2013-01-23 4 views
0

При добавлении внешнего ключа отношения MySQL дает ERROR 1050:При добавлении внешнего ключа отношения MySQL (5.5.29) дает ошибка 1050:

У меня есть 2 таблицы и пытаюсь дать внешний ключ отношения с другими, но он дает ошибку ниже ,

ERROR 1005: Can't create table 'yellowbikes.#sql-1e8_82' (errno: 121)

SQL заявление:

ALTER TABLE `yellowbikes`.`schedule` 
    ADD CONSTRAINT `bike_number` 
    FOREIGN KEY (`bike_number`) 
    REFERENCES `yellowbikes`.`bike` (`bike_number`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION 
, ADD INDEX `bike_number_idx` (`bike_number` ASC) 

ERROR: Error when running failback script. Details follow.

ERROR 1050: Table 'schedule' already exists

SQL заявление:

CREATE TABLE `schedule` (
    `bikeid` int(11) NOT NULL, 
    `bike_number` varchar(24) NOT NULL, 
    PRIMARY KEY (`bikeid`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 
+0

Вы пытаетесь выполнить инструкцию SQL без «желтых велосипедов»? –

+0

Вы на 100% уверены, что у вас нет таблицы с расписанием имен? Попробуйте выполнить DROP TABLE IF EXISTS перед вторым заявлением. – Alex

+0

Звучит как сломанная таблица, если она существует. – itachi

ответ

0

Проверьте, чтобы убедиться, что они оба одного типа. Schedule есть тип utf8. Проверить whthr yellowbikes имеет тип default?!?! Если да, то изменить его utf8

Edit:

Также вы можете проверить, если вы MySql БД MyISAM. Если это так, запишите его в InnoDB, потому что если вам нужна база данных для обеспечения ограничений внешнего ключа или вам нужна база данных для обработки изменений, сделанных набором операций DML, как единая единица работы, тогда вы должны выбрать InnoDB поверх MyISAM, так как эти функции отсутствуют в двигателе MyISAM.

+0

Привет, Vin, да, оба имеют один и тот же tyoe, у меня уже есть еще несколько таблиц и отношений, но теперь, когда я создаю новый, он выдает эту ошибку. – Parab

+0

Если ваш MySQL DB Engine является MyISAM, вы не сможете добавьте внешний ключ после создания таблицы. если это так, вы можете изменить его на InnoDB .. (ans отредактирован) –

+0

Привет, Vinayak, Engine - это INNODB сам по себе для обеих таблиц, с сопоставлением UTF8 по умолчанию – Parab

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