CREATE TABLE上不存在表?

时间:2012-11-16 16:32:57

标签: mysql phpmyadmin

我正在尝试将SQL转储导入另一台服务器。它在第一行失败了。我首先创建exp_actions表,然后在其中插入一堆数据,但我得到了这个非常奇怪的错误。

SQL query:

--
-- Database: `ee_cmssite`
--
-- --------------------------------------------------------
--
-- Table structure for table `exp_actions`
--
CREATE TABLE  `exp_actions` (

 `action_id` INT( 4 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
 `class` VARCHAR( 50 ) NOT NULL DEFAULT  '',
 `method` VARCHAR( 50 ) NOT NULL DEFAULT  '',
PRIMARY KEY (  `action_id` )
) ENGINE = MYISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT =21;

MySQL said: 

#1146 - Table 'site_ee.exp_actions' doesn't exist 

为什么不存在?我刚刚指示要创建它。我完全不知所措。我曾尝试使用和不使用IF_NOT_EXISTS

3 个答案:

答案 0 :(得分:2)

如果有其他人遇到这个看似奇怪的错误 - 请参阅https://stackoverflow.com/a/11696069了解解决方案。

我有相同的症状,原因是一样的 - 转移到一台新机器我采取了简单的方法将数据库从我需要的mysql / data目录直接复制到新机器中,但有些是较新的InnoDb类型。这会导致Create Table throws表不存在错误。我不得不删除数据库并重新创建它,然后从sql dump导入。

答案 1 :(得分:0)

根据SQL脚本,该表存在于另一个数据库中:

  

-

     

- 数据库:ee_cmssite

     

- --------------------------------------------- -----------

     

- 表exp_actions

的表结构

尝试使用ee_cmssite数据库。

答案 2 :(得分:0)

虽然错误不明确,但我认为这与文件开头的缺失USE有关。转储单个数据库时,mysqldump不会添加USE语句。所以你应该添加:

USE `ee_cmssite`;