MySQL:无法创建表(errno:150)我正在尝试导入一个.sql文件,它在创建表时失败了。以下是失败的查询:CREATE TABLE `data` (`id` int(10) unsigned NOT NULL,`name` varchar(100) NOT NULL,`value` varchar(15) NOT NULL,UNIQUE KEY `id` (`id`,`name`),CONSTRAINT `data_ibfk_1` FOREIGN KEY (`id`) REFERENCES `keywords` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=latin1; 我从同一个数据库导出了.sql,删除了所有的表,现在我试图导入它,为什么它失败了?MySQL:无法创建表‘./dbName/data.frm’(errno:150)
3 回答
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
如果您重新创建一个被删除的表,它必须有一个符合引用它的外键约束的定义。如前面所述,它必须具有正确的列名和类型,并且必须在引用的键上有索引。 如果不满足这些要求,MySQL将返回错误1005,并在错误消息中引用错误150,这意味着外键约束没有正确形成。类似地,如果ALTERTABLE由于错误150而失败,这意味着修改后的表将错误地形成外键定义。
MMMHUHU
TA贡献1834条经验 获得超8个赞
慕慕森
TA贡献1856条经验 获得超17个赞
SET FOREIGN_KEY_CHECKS=0;
添加回答
举报
0/150
提交
取消