2014-09-11 67 views
3

我想通过phpMyAdmin上载备份sql文件。尝试导入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'); 
.... 
.... 

是否有任何魔术发生?

尝试两次,然后我像导入同样的方式后,它的工作原理

感谢乡亲.....

+2

显示你的sql脚本 – gvgvgvijayan 2014-09-11 12:33:35

+4

我敢打赌'db.t'的'CREATE TABLE'行缺少'IF NOT EXISTS'子句。 – Barmar 2014-09-11 12:35:00

+0

导入可能使用这样的东西...使用db_x然后您的导入将转到另一个数据库 – Otto 2014-09-11 12:42:20

回答

5

请在每次查询的顶部添加此:

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

你只需要创建注释数据库的查询您的SQL文件

请把意见或在您的SQL文件中删除代码,然后尝试

/* CREATE TABLE IF NOT EXISTS carscar_id SMALLINT(5)无符号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的默认字符集= LATIN1 AUTO_INCREMENT = 5; */

0

我正在处理同样的问题,不能弄明白。当我尝试将外键链接到我的连接表时,该查询将失败,并显示相同的1050错误消息,并且它只会保留我创建的第一个关系。 我注意到,phpmyadmin自动给它的约束保留一个名称,我只是复制该名称(在“约束名称”下)并将“1”替换为“2”并再次运行查询,没有问题。两个关系都被保存了。希望这可以帮助。

相关问题