MySQL:无法建立表格(错误编号:150) [英] MySQL: Can't create table (errno: 150)

查看:109
本文介绍了MySQL:无法建立表格(错误编号:150)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试导入.sql文件,但该文件创建表失败.

I am trying to import a .sql file and its failing on creating tables.

以下是失败的查询:

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,我删除了所有表,现在我试图导入它,为什么会失败?

I exported the .sql from the the same database, I dropped all the tables and now im trying to import it, why is it failing?

MySQL:无法创建表'./dbname/data.frm'(错误号:150)

MySQL: Can't create table './dbname/data.frm' (errno: 150)

推荐答案

来自

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

If you re-create a table that was dropped, it must have a definition that conforms to the foreign key constraints referencing it. It must have the correct column names and types, and it must have indexes on the referenced keys, as stated earlier. If these are not satisfied, MySQL returns Error 1005 and refers to Error 150 in the error message, which means that a foreign key constraint was not correctly formed. Similarly, if an ALTER TABLE fails due to Error 150, this means that a foreign key definition would be incorrectly formed for the altered table.

这篇关于MySQL:无法建立表格(错误编号:150)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆