PDA

Просмотр полной версии : [Вопрос] (error #1005) Can't create table 'newdb.business' (errno: 150)



execution
23.11.2019, 19:05
При создании таблицы, выдаёт ошибку как в заголовке.
Таблица accounts так-же на движке InnoDB. Что может быть не так?


mysql_tquery(mysql, "\
CREATE TABLE IF NOT EXISTS `business` (\
`business_id` int(9) NOT NULL,\
`business_type` int(3) NOT NULL,\
`business_owner` varchar(25) NOT NULL DEFAULT 'Unknown',\
`business_owner_id` int(11) NOT NULL DEFAULT '-1',\
PRIMARY KEY (`business_id`),\
CONSTRAINT `account_business_fk`\
FOREIGN KEY (`business_owner_id`,`business_owner`) REFERENCES accounts (`ID`,`ID`) ON DELETE SET DEFAULT,\
CONSTRAINT `account_business_fk_2`\
FOREIGN KEY (`business_owner`) REFERENCES accounts (`Name`) ON UPDATE CASCADE\
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;\
");

DeimoS
24.11.2019, 02:47
С внешними ключами проблема. Либо столбцы, на которые ты ссылаешься, отсутствуют, либо проблема с настройками столбцов.
Просто загугли текст из заголовка этой твоей темы (https://www.google.com/search?q=(error+%231005)+Can%27t+create+table+%27newdb.business%27+(errno%3A+150)&oq=(error+%231005)+Can%27t+create+table+%27newdb.business%27+(errno%3A+150)&aqs=chrome..69i57j69i60l2&sourceid=chrome&ie=UTF-8) и найдёшь кучу инфы на этот счёт. Будет проще, чем по новой описывать всё это, дублируя информацию.