1005 mysql无法创建表外键erno 150

1005 mysql无法创建表外键erno 150,mysql,magento,create-table,Mysql,Magento,Create Table,我正在尝试创建一个基于Magento数据库结构的表。我在安装过程中不断遇到错误,因此我尝试创建与此问题相关的三个表。我在OAuth安装中不断遇到错误。新版本的Magento在MySQL中将进程分为3个表。这三个表中有两个已经创建,下面是第三个表的MySQL脚本——下面是运行错误的表 DROP TABLE IF EXISTS `oauth_token`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET

我正在尝试创建一个基于Magento数据库结构的表。我在安装过程中不断遇到错误,因此我尝试创建与此问题相关的三个表。我在OAuth安装中不断遇到错误。新版本的Magento在MySQL中将进程分为3个表。这三个表中有两个已经创建,下面是第三个表的MySQL脚本——下面是运行错误的表

DROP TABLE IF EXISTS `oauth_token`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `oauth_token` (
`entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Entity ID',
`consumer_id` int(10) unsigned NOT NULL COMMENT 'Consumer ID',
`admin_id` int(10) unsigned DEFAULT NULL COMMENT 'Admin user ID',
`customer_id` int(10) unsigned DEFAULT NULL COMMENT 'Customer user ID',
`type` varchar(16) NOT NULL COMMENT 'Token Type',
`token` varchar(32) NOT NULL COMMENT 'Token',
`secret` varchar(32) NOT NULL COMMENT 'Token Secret',
`verifier` varchar(32) DEFAULT NULL COMMENT 'Token Verifier',
`callback_url` varchar(255) NOT NULL COMMENT 'Token Callback URL',
`revoked` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Is Token revoked',
`authorized` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Is Token authorized',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Token creation         timestamp',
PRIMARY KEY (`entity_id`),
UNIQUE KEY `UNQ_OAUTH_TOKEN_TOKEN` (`token`),
KEY `IDX_OAUTH_TOKEN_CONSUMER_ID` (`consumer_id`),
KEY `FK_OAUTH_TOKEN_ADMIN_ID_ADMIN_USER_USER_ID` (`admin_id`),
KEY `FK_OAUTH_TOKEN_CUSTOMER_ID_CUSTOMER_ENTITY_ENTITY_ID` (`customer_id`),
CONSTRAINT `FK_OAUTH_TOKEN_ADMIN_ID_ADMIN_USER_USER_ID` FOREIGN KEY (`admin_id`)         REFERENCES `admin_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `FK_OAUTH_TOKEN_CONSUMER_ID_OAUTH_CONSUMER_ENTITY_ID` FOREIGN KEY     (`consumer_id`) REFERENCES `oauth_consumer` (`entity_id`) ON DELETE CASCADE ON UPDATE     CASCADE,
CONSTRAINT `FK_OAUTH_TOKEN_CUSTOMER_ID_CUSTOMER_ENTITY_ENTITY_ID` FOREIGN KEY (`customer_id`) REFERENCES `customer_entity` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='OAuth Tokens';
/*!40101 SET character_set_client = @saved_cs_client */;

那么我应该怎么做,或者如何修改MySQL脚本才能工作呢?

最常见的情况是,您引用的表是MyISAM,不能在FK关系中使用它们

也可能是您的FK没有唯一的名称,但鉴于您的命名约定,这看起来不太可能

如果两者都没有,请检查您正在引用的列,并确保它们上有索引(主键或唯一索引)


最后检查数据类型,FK关系中两列之间的数据类型必须完全相同。即使长度不同(int(10)、int(11))或有符号与无符号也不允许您建立FK关系。

您能为外键常量中引用的表发布create语句吗?可能存在重复的问题!谢谢大家的帮助!管理员id已设置为mediumint(9)!这是唯一需要修理的东西!谢谢谢谢谢谢!!