CREATE TABLE后表不存在

时间:2011-11-15 19:29:12

标签: mysql symfony xampp mysql-error-1146

我正在尝试在我的数据库名称symfony中导入此sql

CREATE TABLE IF NOT EXISTS ingredient (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

我得到了

#1146 - Table 'symfony.ingredient' doesn't exist

这似乎很奇怪,因为我在这里尝试创建这个表,所以...为什么它不起作用? 如果我尝试

,我也会遇到同样的问题
CREATE TABLE symfony.ingredient

或symfony 2中的功能

c:\Dev\Symfony>php app/console doctrine:schema:create

PS:我只有xampp的新版本才有这个问题。

修改

好吧,我设法解决了我的问题。 我删除了我的数据库,然后创建了一个(不使用接口),最后我重新启动了mysql服务。 我不知道为什么以及如何解开我,但我希望这会对某人有所帮助。

6 个答案:

答案 0 :(得分:15)

我遇到了同样的问题。 我的解决方案 在create table query中更改表名,对其进行exequte,然后重命名该表。

然后,您也可以删除此表,然后创建它而不会出错。

答案 1 :(得分:9)

对我有用的是:

  • 转到文件夹xampp / mysql / data / database-name /
  • 您只会看到.frm文件。空表缺少文件.MYD.MYI
  • 删除.frm文件。
  • 停止MySQL进程并重新启动它。
  • 之后我就能创建表格了。

旧版本的xampp以MyISAM格式创建表格,新版本为InnoDB!

答案 2 :(得分:1)

我有同样的问题。我有一台服务器消失了#34;创建表时的消息,之后我得到表并不存在消息,但我无法尝试重新创建表,因为之后我收到一条消息,说它已经存在。我通过在命令行执行此操作来解决它:

mysqlcheck --repair --all-databases -u root -p

在此之后重启mysql服务器也不会有什么坏处。以防万一。

答案 3 :(得分:0)

嗯,你确定你有一个数据库,并且有权使用CREATE语句。

如果你有phpmyadmin:

要测试第一个可能性,请创建一个新的(空)测试数据库,在菜单中单击它 然后按顶部导航中的SQL按钮并再次复制粘贴语句。如果这不起作用,请尝试第二个。

对于第二个,您可以单击“主页”按钮,然后转到“权限”。如果只有两个或三个帐户,但都具有root权限,则您具有执行CREATE的权限。否则,您可以检查您的帐户并给自己权限。

如果两种可能性都没有解决,我也不知道。它对我来说很好:(

答案 4 :(得分:0)

我遇到了同样的问题:#1146 - 表'tutsplus_ci.posts'不存在。我按照以下步骤解决了这个问题:

我在sql文件中导出了有罪的表。我注意到.sql文件中的表名有一个假的尾随空格。 我在表格的“操作”部分切换回phpmyadmin,然后将表格从“帖子”重命名为“帖子”。采取所有这些操作后,错误没有显示出来。

总而言之,确实表'帖子'不存在,因为错误消息说。因为表的实际名称是“帖子”而不是“帖子”。在phpmyadmin中很难注意到名称前的空格。这就是故事。没什么特别的。 我希望它有所帮助!

答案 5 :(得分:0)

转到phpadmin中的数据库,然后在sql中删除表。然后创建表。