2014-09-11 105 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」並再次運行查詢,沒有問題。兩個關係都被保存了。希望這可以幫助。

相關問題