2013-02-17 1 views
0

Я получаю errno 150 при создании следующих таблиц. Первые две работают нормально, но третий вызывает эту ошибку:MySQL Errno 150 на полях VARCHAR

ERROR 1005 (HY000): Can't create table 'test2.exercise_type_exercise_groups' (errno: 150) 

Любые идеи? Я проверил, что типы, длины, кодировка и сопоставление идентичны для всех ключевых столбцов ... Что еще может быть проблемой?

Заранее благодарим за помощь!

CREATE TABLE `exercise_groups` (
    `id` VARCHAR(255) NOT NULL, 
    PRIMARY KEY `pk_exercise_groups` (`id`) 
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; 

CREATE TABLE `exercise_types` (
    `id` VARCHAR(255) NOT NULL, 
    PRIMARY KEY `pk_exercise_types` (`id`) 
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; 

CREATE TABLE `exercise_type_exercise_groups` (
    `exercise_type` VARCHAR(255) NOT NULL, 
    `exercise_group` VARCHAR(255) NOT NULL, 
    `link_type` ENUM('primary', 'ancillary'), 
    PRIMARY KEY `pk_exercise_type_exercise_groups` (`exercise_type`, `exercise_group`), 
    CONSTRAINT `fk_exercise_type_exercise_groups_exercise_type` 
     FOREIGN KEY (`exercise_type`) 
     REFERENCES `exercise_type` (`id`), 
    CONSTRAINT `fk_exercise_type_exercise_groups_exercise_group` 
     FOREIGN KEY (`exercise_group`) 
     REFERENCES `exercise_group` (`id`) 
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci; 
+0

О, госпожа, только что заметила, что моя ссылка на уникальное имя таблицы ... Я попробую это и посмотрю, исправляет ли это это. –

+0

Да, это была проблема. D'о! –

ответ

2

errno 150 - общая ошибка внешнего ключа, которая редко бывает полезной. Есть по крайней мере четыре причины, это так:

  1. Типы столбцов не совпадают
  2. Столбец не является ключевым в указанной таблице, или ссылочный столбец/таблица не существует (это ваш проблема, у вас были ошибочные другие таблицы)
  3. Любая из таблиц не InnoDB.
  4. Вы пытаетесь удалить внешний ключ, которого нет.
+0

@ TheSmose Я ценю это; вы можете ответить на свои вопросы, но я думаю, что ответы SO должны быть полезны для всех, кто рассматривает вопрос, а не только для отдельных случаев. –

+0

Хорошо, согласен. –

+0

@ Explosion Pills Спасибо, человек, мне очень помог, я был готов сделать сообщение, потому что все, что я мог найти в ответах на эту ошибку, где типы столбцов не совпадают, и с этим ответом я понял, что не установил свой StudentID в таблице Students первичный ключ все хорошо сейчас. ALTER TABLE Зачисления ADD FOREIGN KEY (StudentID) ССЫЛКИ Студенты (StudentID); – RiCHiE

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

  • Нет связанных вопросов^_^