一尘不染

MySQL:无法建立表格(错误编号:150)

mysql

我正在尝试导入.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)


阅读 293

收藏
2020-05-17

共1个答案

一尘不染

MySQL-外键约束文档

如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引用的键上具有索引。
如果不满足这些条件,MySQL将返回错误1005,并在错误消息中引用错误150,这意味着未正确形成外键约束。

同样,如果由于错误150而导致ALTER TABLE失败,这意味着将为更改后的表错误地形成外键定义。

2020-05-17