在尝试导入SQL文件时出现“Table already exists”错误。

29 浏览
0 Comments

在尝试导入SQL文件时出现“Table already exists”错误。

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

在phpMyAdmin中使用与导入文件中相同的数据库名称创建一个空的数据库,然后使用该空数据库中的导入功能。

我收到以下错误信息。

#1050 - 表'`db`.`t`'已经存在

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

    --
-- 数据库:`mbfour`
--
-- --------------------------------------------------------
--
-- 表结构:`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 ;
--
-- 车辆表的数据
--
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');
....
....

是否有什么魔法发生了?

尝试两次后,我以相同的方式进行导入,它可以工作了。

谢谢大家。

0
0 Comments

我遇到了同样的问题,但是一直无法解决。当我尝试将外键链接到我的连接表时,查询会失败,并显示相同的1050错误消息,只会保留我创建的第一个关系。

我注意到phpmyadmin会自动给保留的约束一个名称,我只需要复制该名称(在“约束名称”下)并将“1”替换为“2”,然后再次运行查询,问题解决了。两个关系都被保存了。

希望这可以帮到你。

0
0 Comments

当尝试导入SQL文件时出现"Table already exists"错误的问题,可能的原因是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 ;*/

通过将该查询语句注释掉或删除,再次尝试导入SQL文件,应该就可以成功执行了。

0
0 Comments

当尝试导入SQL文件时出现"Table already exists"错误的原因是因为数据库中已经存在同名的表。解决这个问题的方法是在每个查询的顶部添加以下代码:

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

但是这种方法会导致数据丢失,只是更新了表的结构而不保留数据。请确保在第二行的代码末尾添加分号。

0