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

标签 mysql sql database utf-8

尝试将网站数据库导入另一台服务器时,我不断收到此错误。

错误:

Error at the line 3034: ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Catalog Product Website Index Table';

查询:

CREATE TABLE `catalog_product_index_website` (
`website_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Website ID',
`website_date` date DEFAULT NULL COMMENT 'Website Date',
`rate` float DEFAULT '1' COMMENT 'Rate',
PRIMARY KEY (`website_id`),
KEY `IDX_CATALOG_PRODUCT_INDEX_WEBSITE_WEBSITE_DATE` (`website_date`),
CONSTRAINT `FK_CAT_PRD_IDX_WS_WS_ID_CORE_WS_WS_ID` FOREIGN KEY (`website_id`) REFERENCES `core_website` (`website_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Catalog Product Website Index Table'

MySQL: Can't create table './myhairdev/catalog_product_index_website.frm' (errno: 150)

我尝试在开头添加 SET FOREIGN_KEY_CHECKS=0; 和 SET FOREIGN_KEY_CHECKS=1;最后但仍然遇到相同的错误。

这是相关数据库行中的代码:

DROP TABLE IF EXISTS `catalog_product_index_website`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `catalog_product_index_website` (
  `website_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Website ID',
  `website_date` date DEFAULT NULL COMMENT 'Website Date',
  `rate` float DEFAULT '1' COMMENT 'Rate',
  PRIMARY KEY (`website_id`),
  KEY `IDX_CATALOG_PRODUCT_INDEX_WEBSITE_WEBSITE_DATE` (`website_date`),
  CONSTRAINT `FK_CAT_PRD_IDX_WS_WS_ID_CORE_WS_WS_ID` FOREIGN KEY (`website_id`) REFERENCES `core_website` (`website_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Catalog Product Website Index Table';
/*!40101 SET character_set_client = @saved_cs_client */;

请帮助帮助:)

最佳答案

你必须删除约束

CONSTRAINT `FK_CAT_PRD_IDX_WS_WS_ID_CORE_WS_WS_ID` FOREIGN KEY (`website_id`) REFERENCES `core_website` (`website_id`) ON DELETE CASCADE ON UPDATE CASCADE

并在创建所有表、主键和索引时将其添加到末尾。

就您的情况而言,您必须先创建表 core_website 并将 website_id 列声明为索引,然后再创建与此索引和此表相关的外键。

关于MySQL:无法创建表 './myhairdev/catalog_product_index_website.frm'(错误号:150),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18964594/

相关文章:

php - 删除超过一个月/30 天的记录

javascript - 如何在另一个函数(Nodejs mysql)中的查询mysql中使用 "results"变量(回调函数)

sql-server - 从字符串转换日期和/或时间时 SQL Server 错误转换失败

mysql - 如何通过一列组合两个不同的查询结果

sql - 为列中的每一行生成 guid

sql - 过滤 CASE 语句中的 NULL 值

PHP SCRIPT - 执行时不更新数据库

mysql - 查询无重复项

字符串操作的Sql查询性能?

mysql - 过滤连接结果