2012-01-05 2 views
2

私はmysqldumpを使って(a)テーブルをダンプし、(b)それを別の場所に挿入します。私がパート(b)をやろうとすると問題が発生します。ここに私が得るエラーがあります。mysqldump + auto_incrementがプライマリキーエラーを引き起こします

重複エントリ '1'

さて、上のホールドキー 'PRIMARY'、上の保持のために。重複した主キーを挿入していないことが分かっています....私はCREATE TABLEステートメントをチェックしました。 idフィールドのauto_incremementは、idカラムの最大値のままです。AUTO_INCREMENT = 45634650。この問題は、idが重複しているかどうかに関係なく、auto_incrementの値が指定されている値よりも小さいid値を持つ行を挿入しようとすると、MySQLがこのエラーを出すことになります。

TABLE CREATEステートメントからAUTO_INCREMENTを手動で削除しようとしました。まだ同じエラーです。

更新:ここでは、Createテーブルステートメントの関連部分を示します。一つでもそれらのは巨大で、挿入を除外:

/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; 
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */; 
/*Table structure for table `WC_ip` */ 

DROP TABLE IF EXISTS `WC_ip`; 

CREATE TABLE `WC_ip` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 

etc etc .. =) 

    `activity_date` date DEFAULT NULL, 
    UNIQUE KEY `userid_game_installAge` (`userid`,`game`,`install_age`), 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=45750081 DEFAULT CHARSET=latin1; 

/*!40101 SET [email protected]_SQL_MODE */; 
/*!40014 SET [email protected]_UNIQUE_CHECKS */; 
/*!40111 SET [email protected]_SQL_NOTES */; 

INSERT INTO `bi_user_daily` VALUES (1,1512489,'WC','1','GR','100001229652633','asfdasdf','http://www.facebook.com/asfdasdfasdffgdf','notif','gghgf','Secondary Paid Direct','2012-01-02',0,0,0.00,0,0,0,0,194,0,0,1325491229,'Google Chrome','16.0.912.63','windows','GR','178.146.208.153',0,1325491253,24,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'incomplete',91,2,1914,2,1,3.23,0,NULL,NULL,NULL,NULL,0,'2012-01-03','2012-01-03 07:06:57','2012-01-02'), 

(2,1512490,'WC','1','TW','453','asdf','http://www.facebook.com/profile.php?id=blachdfhjdfkh','dfdsfg','','Primary Paid','2012-01-02',0,0,0.00,0,0,0,0,394,0,0,1325491233,'Google Chrome','16.0.912.63','windows','TW','114.41.159.234',0,1325491258,25,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'complete',120,2,2302,2,1,6.57,0,NULL,NULL,NULL,NULL,0,'2012-01-03','2012-01-03 07:06:57','2012-01-02'), 

(3,1512491,'WC','1','','1590571243','','','notif','asfd','Secondary Paid Direct','2012-01-02',0,0,0.00,0,0,0,0,0,0,0,34535,'Mozilla Firefox','9.0.1','windows','-','10.54.48.31',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0.00,0,NULL,NULL,NULL,NULL,0,'2012-01-03','2012-01-03 07:06:57','2012-01-02') 

CREATE TABLE `bi_user_daily` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `userid` bigint(20) DEFAULT NULL, 
    `game` varchar(45) DEFAULT NULL, 
    `main.install_today` varchar(45) DEFAULT NULL, 
    `main.country` text, 
    `main.fbid` varchar(50) DEFAULT NULL, 
    `main.photo` text, 
    `main.main.url` text, 
    `main.fromstr` varchar(50) DEFAULT NULL, 
    `main.sourcestr` varchar(50) DEFAULT NULL, 
    `main.user_type` varchar(50) DEFAULT NULL, 
    `main.install_date_pst` date DEFAULT NULL, 
    `main.install_hour_pst` int(11) DEFAULT NULL, 
    `main.revenue_primary` int(11) DEFAULT NULL, 
    `main.revenue_secondary` decimal(10,2) DEFAULT NULL, 
    `main.trans_primary` int(11) DEFAULT NULL, 
    `main.trans_secondary` int(11) DEFAULT NULL, 
    `main.direct_installs_generated` int(11) DEFAULT NULL, 
    `main.indirect_installs_generated` int(11) DEFAULT NULL, 
    `main.timeplayed_total` int(11) DEFAULT NULL, 
    `main.gift_sent_total` int(11) DEFAULT NULL, 
    `main.monetized` int(11) DEFAULT NULL, 
    `install.usercreate_time` int(11) DEFAULT NULL, 
    `install.browser` varchar(75) DEFAULT NULL, 
    `install.browser_version` varchar(50) DEFAULT NULL, 
    `install.os` varchar(50) DEFAULT NULL, 
    `install.ip_address_country` varchar(50) DEFAULT NULL, 
    `install.ip_address` varchar(50) DEFAULT NULL, 
    `install.noload` int(11) DEFAULT NULL, 
    `install.f.reate_time` int(11) DEFAULT NULL, 
    `install.load_duration` int(11) DEFAULT NULL, 
    `l.f.time_saved` int(11) DEFAULT NULL, 
    `l.f.playerLevel` int(11) DEFAULT NULL, 
    `l.f.daysSinceInstall` int(11) DEFAULT NULL, 
    `l.f.resource1` int(11) DEFAULT NULL, 
    `l.f.resource2` int(11) DEFAULT NULL, 
    `l.f.resource3` int(11) DEFAULT NULL, 
    `l.f.resource4` int(11) DEFAULT NULL, 
    `l.f.f.epairTime` int(11) DEFAULT NULL, 
    `l.f.dockRepairTime` int(11) DEFAULT NULL, 
    `l.f.fleetRepairTime` int(11) DEFAULT NULL, 
    `l.f.maxResearchTime` int(11) DEFAULT NULL, 
    `l.f.shipBuildTime` int(11) DEFAULT NULL, 
    `l.f.buildingUpgradeTime` int(11) DEFAULT NULL, 
    `l.f.numf.Uncovered` int(11) DEFAULT NULL, 
    `l.f.attackablef.Uncovered` int(11) DEFAULT NULL, 
    `l.f.numTerrainsUncovered` int(11) DEFAULT NULL, 
    `l.f.numFleets` int(11) DEFAULT NULL, 
    `l.f.battlesWon` int(11) DEFAULT NULL, 
    `l.f.battlesTotal` int(11) DEFAULT NULL, 
    `l.f.numf.ttacks` int(11) DEFAULT NULL, 
    `l.f.numf.efends` int(11) DEFAULT NULL, 
    `l.f.totalResourcesCombat` int(11) DEFAULT NULL, 
    `l.f.totalResourcesProduced` int(11) DEFAULT NULL, 
    `l.f.bubbleTimeLeft` int(11) DEFAULT NULL, 
    `l.f.FBCSpend` int(11) DEFAULT NULL, 
    `l.f.numFriends` int(11) DEFAULT NULL, 
    `l.f.numInstallsGenerated` int(11) DEFAULT NULL, 
    `l.f.numGiftsRecd` int(11) DEFAULT NULL, 
    `l.f.numChatMessagesSent` int(11) DEFAULT NULL, 
    `l.f.numMissionsCompleted` int(11) DEFAULT NULL, 
    `l.f.numAdvancedResearched` int(11) DEFAULT NULL, 
    `l.f.numWeaponsResearched` int(11) DEFAULT NULL, 
    `l.f.numArmorsResearched` int(11) DEFAULT NULL, 
    `l.f.numHullsResearched` int(11) DEFAULT NULL, 
    `l.summary.tutorial_status` varchar(50) DEFAULT NULL, 
    `l.summary.tutorial_stage` int(11) DEFAULT NULL, 
    `l.summary.user_level` int(11) DEFAULT NULL, 
    `l.summary.f.points` int(11) DEFAULT NULL, 
    `l.summary.f.loads` int(11) DEFAULT NULL, 
    `key_metrics.logged_in` int(11) DEFAULT NULL, 
    `key_metrics.timeplayed` decimal(10,2) DEFAULT NULL, 
    `key_metrics.revenue` int(11) DEFAULT NULL, 
    `virality.secondary_direct_install` int(11) DEFAULT NULL, 
    `virality.secondary_indirect_install` int(11) DEFAULT NULL, 
    `monetization.secondary_direct_revenue` decimal(10,2) DEFAULT NULL, 
    `monetization.secondary_indirect_revenue` decimal(10,2) DEFAULT NULL, 
    `install_age` int(11) DEFAULT NULL, 
    `record_created_date` date DEFAULT NULL, 
    `record_created_datetime` datetime DEFAULT NULL, 
    `activity_date` date DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `userid_game_installAge` (`userid`,`game`,`install_age`) 
) ENGINE=MyISAM AUTO_INCREMENT=45634650 DEFAULT CHARSET=latin1; 
+0

私からダンプ –

+1

愚かな質問の最初の2行にに設定されたIDフィールドは何:新しいですテーブルは空ですか? –

+0

@Cassyは私が尋ねた最初の質問だったはずです: –

答えて

4

私は数ヶ月前にこの非常に同じ問題に遭遇しました(私のblogに掲載された解決策)。 MySQL 5.1.11以降のknown issueがあります。mysqldumpを実行すると、(あなたの投稿に記載されているように)auto_increment countも出力されます。あなたはsed(ストリーム編集)を使用して、ダンプファイルを生成するときにAUTO_INCREMENTの構造を解析することができます

mysqldump -u username -p -h <db-host> --opt <db-name> -d --single-transaction | sed 's/ AUTO_INCREMENT=[0-9]*\b//' > <filename>.sql 
0

彼らはテーブル定義で指定され、彼らは次の値を使用するNULLであればNULLとして、あるいは特定の番号として設定AUTO_INCREMENT値です。明示的に表現されている場合は、重複が存在しない限り、その値として挿入されるものとする。

+0

それらはすべて数字に設定されています。これらの値がすべて得られたテーブルは、idカラムに何の問題もなく、何も操作しませんでした。 – user1082428

+0

@ user1082428 create tableの "relevant"部分とinsert values文の最初の2つの部分を投稿できますか?ああ、カッシーが言ったように - テーブルは空ですか? –

+0

オリジナルの投稿に追加されました。 – user1082428

0

私は、このヘルプあなた

ALTER TABLE table2 AUTO_INCREMENT = 1; 

またはtable2の上の主キーを削除し、同じレコードを検索を願っています。

+0

idがダンプ内で明示的である場合、テーブルのauto_incrementをリセットすると後で問題が発生するため、これは役に立ちます。 –

関連する問題