Я создаю сценарии создания для своей базы данных и получаю сообщение об ошибке, которое не могу понять. Я проследил это до ссылки на внешний ключ, но поиск в Google errno(150) не особенно помог.
Скрипт, который не работает:
create table ITEM_TBL(
IT_ITEM_ID_FLD INT AUTO_INCREMENT,
IT_ITEM_NAME_FLD VARCHAR(50),
ITY_ITEM_TYPE_FLD INT,
UT_USER_ID_FLD INT,
IT_CHECKOUT_STATUS_FLD VARCHAR(1),
IT_LAST_UPDATE_FLD DATE,
IT_LAST_ITEM_CHANGE_FLD DATE,
IT_ACTIVE_FLD VARCHAR(1),
PRIMARY KEY (IT_ITEM_ID_FLD),
FOREIGN KEY (UT_USER_ID_FLD)
REFERENCES USER_TBL(UT_USER_ID_FLD),
FOREIGN KEY (ITY_ITEM_TYPE_FLD)
REFERENCES ITEM_TYPE_TBL(ITY_ITEM_TYPE_FLD)
) ENGINE = INNODB;
(ПРИМЕЧАНИЕ: это последний внешний ключ, который вызывает ошибку, потому что когда он удален, он работает отлично)
Таблицы, на которые ссылаются внешние ключи:
create table ITEM_TYPE_TBL(
ITY_ITEM_TYPE_ID_FLD INT AUTO_INCREMENT,
ITY_ITEM_TYPE_NAME_FLD VARCHAR(50),
PRIMARY KEY (ITY_ITEM_TYPE_ID_FLD)
) ENGINE = INNODB;
create table USER_TBL(
UT_USER_ID_FLD INT AUTO_INCREMENT,
UT_NAME_FLD VARCHAR(50),
UT_EMAIL_ADDRESS_FLD VARCHAR(50),
UT_CARD_NUMBER INT NOT NULL,
PRIMARY KEY (UT_USER_ID_FLD)
) ENGINE = INNODB;
Конкретная ошибка, которую я получаю:
#1005 - Невозможно создать таблицу 'db.ITEM_TBL' (номер ошибки: 150)
ITY_ITEM_TYPE_FLD
не существует вITEM_TYPE_TBL
. Вы хотели использоватьITY_ITEM_TYPE_ID_FLD
? - person Michael Berkowski   schedule 16.01.2014ITY_ITEM_ITY_TYPE_ITEM_FLD_ID
:) - person Michael Berkowski   schedule 16.01.2014