我正在尝试导入.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’(错误号:150)
从MySQL-外键约束文档:
如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引用的键上具有索引。 如果不满足这些条件,MySQL将返回错误1005,并在错误消息中引用错误150,这意味着未正确形成外键约束。 同样,如果由于错误150而导致ALTER TABLE失败,这意味着将为更改后的表错误地形成外键定义。