【问题标题】:Table already exists error when trying to import sql file尝试导入 sql 文件时表已存在错误
【发布时间】:2014-09-11 12:31:56
【问题描述】:

我正在尝试通过 phpMyAdmin 上传备份 sql 文件。

使用与我在 phpMyAdmin 中的导入文件中相同的数据库名称创建空数据库,然后使用从该空数据库中选择的导入函数。

我收到以下错误消息。

#1050 - Table '`db`.`t`' already exists 

在导入文件中,每条CREATE TABLE语句都以IF NOT EXISTS为后缀,那为什么会报错呢?

    --
-- Database: `mbfour`
--

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

--
-- Table structure for table `cars`
--

CREATE TABLE IF NOT EXISTS `cars` (
  `car_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `type` varchar(200) NOT NULL,
  `status` varchar(20) NOT NULL,
  `capacity` varchar(5) NOT NULL,
  PRIMARY KEY (`car_id`),
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Dumping data for table `cars`
--

INSERT INTO `cars` (`car_id`, `type`, `status`, `capacity`) VALUES
(1, 'automatic', 'built', '4L'),
(2, 'automatic', 'in-production', '2L'),
(3, 'automatic', 'built', '2L'),
(4, 'automatic', 'in-production', '4L');
....
....

有什么魔法发生???

尝试两次后,我以同样的方式导入,它可以工作

谢谢大家.....

【问题讨论】:

  • 显示你的 sql 脚本
  • 我敢打赌,db.tCREATE TABLE 行缺少 IF NOT EXISTS 子句。
  • 导入可能使用类似这样的东西......使用 db_x 然后你的导入将转到另一个数据库
  • 好吧发布真正的错误而不是#1050 - Table '`db`.`t`' already exists,因为表名与错误不匹配。
  • 在我的情况下,mysql进程对数据库文件的权限不足。 chmod -R 775 已解决问题。

标签: mysql phpmyadmin


【解决方案1】:

请在每个查询的顶部添加:

DROP TABLE IF EXISTS `cars`;
CREATE TABLE IF NOT EXISTS `cars`

【讨论】:

  • 但是这种方式 U 最终会丢失数据...关键是更新结构,使数据无法附加。
  • 删除表如果存在cars;如果不存在则创建表cars;请确保将分号放在第二行。
【解决方案2】:

你只需要在你的sql文件中注释创建数据库的查询

请在您的 sql 文件中添加注释或删除代码,然后尝试

   /* CREATE TABLE IF NOT EXISTS `cars` (
  `car_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `type` varchar(200) NOT NULL,
  `status` varchar(20) NOT NULL,
  `capacity` varchar(5) NOT NULL,
  PRIMARY KEY (`car_id`),
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;*/

【讨论】:

    【解决方案3】:

    我正在处理同样的问题,但无法弄清楚。当我尝试将外键链接到我的连接表时,查询将失败并显示相同的 1050 错误消息,并且它只会保留我创建的第一个关系。

    我注意到 phpmyadmin 自动为它保留了一个名称的约束,我只是复制了该名称(在“约束名称”下)并将“1”替换为“2”并再次运行查询,没问题。两种关系都已保存。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-23
      • 2013-05-30
      • 2022-11-21
      • 1970-01-01
      • 2023-03-09
      • 2013-11-15
      • 2017-12-26
      • 1970-01-01
      相关资源
      最近更新 更多