尝试导入sql文件时表已存在错误

时间:2014-09-11 12:31:57

标签: mysql phpmyadmin

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

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

我收到以下错误消息。

#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');
....
....

是否有任何魔法发生?

尝试两次然后我以同样的方式导入,它有效

谢谢大家.....

3 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:0)

您只需在sql文件中注释create database的查询

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

/ * CREATE TABLE IF NOT 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; * /

答案 2 :(得分:0)

我正在处理同样的问题而无法理解。当我尝试将外键链接到我的连接表时,查询将失败并显示相同的1050错误消息,它只会保留我创建的第一个关系。 我注意到phpmyadmin自动给出了它保留名称的约束,我只是复制了那个名字(在" Constrain名称"下)并替换了" 1"与" 2"并再次运行查询,没问题。两种关系都得到了保存希望这会有所帮助。