2015-05-11 98 views
1

我在mysql中的一个问题,我尝试运行这句话创建表,如果不存在返回“表doesn't存在”

CREATE TABLE IF NOT EXISTS comunidad_estado (
    id_comunidad_estado int(11) NOT NULL, 
    nombre varchar(50) NOT NULL, 
    id_pais int(11) NOT NULL 
) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=latin1; 

和返回是这样的:

https://imageshack.com/i/pdR670xhp

我知道我的数据库是空的,但是我不能明白为什么没有创建表

https://imageshack.com/i/idnYVanJp

在此先感谢。

+0

我想这个说法在MySQL 5.6和它的工作,进一步可以参考http://stackoverflow.com/questions/8142002/table-doesnt-exist-after-create-表格 – Anil

+0

你确定它没有运行,因为它在我身边正常工作。 –

+0

@AnilKumar哇,我之前搜索过,没有发现任何东西,但顺便说一下,它是解决方案,我刚刚创建了其他名称的表,然后重命名它,它的工作。谢谢 –

回答

0

看来,模式/数据库已损坏/锁定。

可能的解决方案:

  • 重启MySQL服务,然后再试一次(有时锁适用于架构,并以某种方式不解锁)
  • 放弃这一模式,创建新模式,然后再试一次(有时,上创建模式 - 它被损坏)
  • 修复mysql(mysqlcheck --repair) - 修复损坏的模式。
  • 最后,检查权限。

要确认您的脚本,请尝试@http://sqlfiddle.com/。如果它可行,那么在您的模式/数据库的可能原因上面。

0

如果有人有同样的错误,我通过更改查询的名称,然后重新命名de db来解决它,一个非常奇怪的工作,但它的工作。 感谢阿尼尔为参考: Table doesn't exist after CREATE TABLE