Mysql:没有键名但无法创建表(错误号:121)

时间:2015-06-24 15:34:47

标签: mysql

是的,我已经阅读了关于error 121的所有问题,但我仍然得到了

Can't create table 'catalog_category_flat_store_1' (errno: 121)

我的查询不包含任何CONSTRAINT或键名

DROP TABLE IF EXISTS `catalog_category_flat_store_1`;
CREATE TABLE `catalog_category_flat_store_1` (
  `entity_id` int(10) NOT NULL,
  PRIMARY KEY (`entity_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

重命名表确实有帮助,但这里不是一个选项(不喜欢重写Magento)

对于SHOW ENGINE INNODB STATUS我没有PROCESS权限。

此查询有什么问题?

3 个答案:

答案 0 :(得分:0)

查询有效,因此可能与另一个表的约束名称冲突。尝试通过CONSTRAINT pk_id PRIMARY KEY ( entity_id )

指定PK名称
DROP TABLE IF EXISTS `catalog_category_flat_store_1`;
CREATE TABLE `catalog_category_flat_store_1` (
  `entity_id` int(10) NOT NULL,
  CONSTRAINT `pk_id` PRIMARY KEY (`entity_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

答案 1 :(得分:0)

它适用于我,尝试使用管理员权限运行mysql并检查用户数据库是否具有drop,create等所有权限

答案 2 :(得分:0)

看起来我的innoDB坏了。我发现了我的问题和解决方案。没有完成测试,但看起来很有希望:

https://dba.stackexchange.com/questions/69656/cant-create-table-but-table-doesnt-exist