【问题标题】:Mysql: No key names but Can't create table (errno: 121)Mysql:没有键名但无法创建表(错误号:121)
【发布时间】:2015-06-24 15:34:47
【问题描述】:

是的,我已经阅读了所有关于 error 121 的文章,但我仍然明白

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

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

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 权限。

这个查询有什么问题?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    查询有效,因此可能与另一个表的约束名称冲突。尝试通过CONSTRAINTpk_idPRIMARY 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;
    

    【讨论】:

    • 谢谢,但这没有帮助。
    【解决方案2】:

    它适用于我,尝试以管理员权限运行 mysql 并检查用户数据库是否具有所有权限,如删除、创建等

    【讨论】:

    • DROP 和 CREATE 有效,但我没有管理员权限。
    • 尝试更改主键的名称
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-09-19
      • 1970-01-01
      • 2010-11-13
      • 2013-12-08
      • 2012-12-27
      • 2016-02-11
      相关资源
      最近更新 更多