2011-04-26 21 views
1

這是我的表數據:爲什麼此轉儲在導入時失敗?

CREATE TABLE IF NOT EXISTS `categories` (
    `id` int(11) unsigned NOT NULL auto_increment, 
    `name` varchar(255) NOT NULL, 
    `user` varchar(255) NOT NULL, 
    `date` datetime NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ; 

-- 
-- Dump dei dati per la tabella `categories` 
-- 

INSERT INTO `categories` (`id`, `name`, `user`, `date`) VALUES(1, 'K-Bal Sound System', 'djfonplaz', '0000-00-00 00:00:00'); 
INSERT INTO `categories` (`id`, `name`, `user`, `date`) VALUES(2, 'Network23 Mixtapes', 'djfonplaz', '0000-00-00 00:00:00'); 
INSERT INTO `categories` (`id`, `name`, `user`, `date`) VALUES(3, 'Artskorps Webmix', 'djfonplaz', '0000-00-00 00:00:00'); 
INSERT INTO `categories` (`id`, `name`, `user`, `date`) VALUES(4, 'GTW Users Mixes', 'djfonplaz', '0000-00-00 00:00:00'); 
INSERT INTO `categories` (`id`, `name`, `user`, `date`) VALUES(5, 'Underground Music Tapes', 'djfonplaz', '0000-00-00 00:00:00'); 
INSERT INTO `categories` (`id`, `name`, `user`, `date`) VALUES(6, 'UK Main Events', 'djfonplaz', '0000-00-00 00:00:00'); 
INSERT INTO `categories` (`id`, `name`, `user`, `date`) VALUES(7, 'Gabba Nation, Bunker & Box, German Events', 'djfonplaz', '0000-00-00 00:00:00'); 

當我嘗試導入這個(與HeidiSql 6.0)我得到這個錯誤:

/* SQL Error (1062): Duplicate entry '1' for key 1 */ 

回答

1

categories必須存在並且已有數據。

在執行該腳本之前刪除categories表。

+0

請問行: 「CREATE TABLE IF NOT EXISTS'categories'」 不走的包了嗎? – travega 2011-04-26 21:07:24

+0

否 - 它只是創建表,如果還沒有創建。如果表格存在,則跳過該部分。因此該表具有帶'1'鍵的數據,以下行嘗試再次插入具有鍵'1'的行。表格必須先刪除/截斷。 – hsz 2011-04-26 21:09:25

+1

對不起,我明白你的意思。 – travega 2011-04-26 21:12:25

0

您正在爲自動增量字段插入一個值。 MySQL會自動爲你插入一個值,所以你不必自己設置值。當它試圖插入你的第一行時,它會嘗試在自動增量的值1上輸入1.

要修復只是從插入中刪除id列。

+0

它不是數據庫的確切轉儲,然後 - 具有鍵1的行現在可以是具有鍵34的行。在通過id訪問該行期間,我們將獲得比期望的更多的東西。 – hsz 2011-04-26 21:11:28

+0

這只是10行25000的代碼。我用phpMyAdmin接口導出它:我能做些什麼? – markzzz 2011-04-26 21:12:19

+0

正如我在我的回答中所說 - 您必須在執行腳本之前刪除所有現有表格。 – hsz 2011-04-26 21:15:09

1

如果您在主鍵設置auto_increment,除去idINSERT聲明

INSERT INTO `categories` (`name`, `user`, `date`) VALUES('K-Bal Sound System', 'djfonplaz', '0000-00-00 00:00:00'); 
... 
+0

它不是數據庫的確切轉儲,然後 - 帶鍵「1」的行現在可以是一個帶鍵「34」的行。在通過id訪問該行時,我們會得到比預期更多的東西。 – hsz 2011-04-26 21:10:47

+0

因此,首先重置計數器:ALTER TABLE類別AUTO_INCREMENT = 0. – bicccio 2011-04-26 21:12:21

+0

表中的數據仍然存在。當'markzzz'插入具有指定'id'的數據時,它將忽略'AUTO_INCREMENT'。 – hsz 2011-04-26 21:13:46

相關問題