Сначала создайте эти две таблицы:MySQL внешние ключи всегда вынуждены строчные
CREATE TABLE IF NOT EXISTS TAB_COMPANY (
ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
NAME VARCHAR(100) NOT NULL,
PRIMARY KEY(ID),
UNIQUE KEY(NAME)
) ENGINE=INNODB DEFAULT CHARSET=UTF8;
CREATE TABLE IF NOT EXISTS TAB_DEPARTMENT (
ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
NAME VARCHAR(100) NOT NULL,
COMPANYID INT(10) UNSIGNED NOT NULL,
PRIMARY KEY(ID),
INDEX FK_TAB_DEPARTMENT_TAB_COMPANY_COMPANYID(COMPANYID ASC),
CONSTRAINT FK_TAB_DEPARTMENT_TAB_COMPANY_COMPANYID
FOREIGN KEY (COMPANYID) REFERENCES TAB_COMPANY(ID) ON DELETE CASCADE
) ENGINE=INNODB DEFAULT CHARSET=UTF8;
Затем продемонстрируйте создать таблицу TAB_DEPARTMENT:
CREATE TABLE `TAB_DEPARTMENT` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`NAME` varchar(100) NOT NULL,
`COMPANYID` int(10) unsigned NOT NULL,
PRIMARY KEY (`ID`),
KEY `FK_TAB_DEPARTMENT_TAB_COMPANY_COMPANYID` (`COMPANYID`),
CONSTRAINT `FK_TAB_DEPARTMENT_TAB_COMPANY_COMPANYID` FOREIGN KEY (`COMPANYID`)
REFERENCES `tab_company` (`ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Имя таблицы в ключевой справочной статье иностранного является принудительный к нижнему регистру.
mysql> show variables like '%lower%';
lower_case_file_system ON
lower_case_table_names 0
mysql> show variables like 'version';
version 5.1.43-community
Моя платформа - это Window XP с SP3. Я тестировал это на Linux, все в порядке.
Неужели кто-нибудь сталкивался с этой проблемой раньше? Я уже сообщал об ошибке в MySQL.
Я только что опробовал версию 5.1.49-community, и проблема все еще там.
Посмотрите, в чем проблема, ничего не видя. Табличные и столбцовые ссылки не чувствительны к регистру ... –