2012-03-07 21 views
1

WordPressのサイトから別のブログにコメントテーブルを追加しようとしています。ユーザーは異なります。サイトBのコメントをAにインポートすると、重複したキーの問題が発生します。既にcomment_idが使用されています。mysqlインポート時に重複した主キーを解決する

どうすればこの問題を解決し、簡単な.sqlファイルでテーブルを追加できますか?ユーザー情報を取得し、新しいユーザーを生成し、サイトBで行ったコメントを確認し、コンテンツとpostIDを取り出し、サイトAに戻り、新しく作成したユーザーのコメントを再作成する必要がありますか。

どのような頭痛!ありがとう。

答えて

0

あなたの唯一の問題は、重複する重要な問題であれば、 ENGINE=MyISAM 後にSQLファイルの末尾に移動して1を追加して、最後のidの ENGINE=MyISAM AutoIncrement=a nubmer above the last id in the new database

または

クエリデータベースA作ります新しい挿入クエリで使用します。

例1:

CREATE TABLE IF NOT EXISTS `movies` (
    `id` int(255) NOT NULL AUTO_INCREMENT, 
    `title` varchar(255) NOT NULL, 
    `year` int(4) NOT NULL, 
    `size` varchar(255) NOT NULL, 
    `added` date NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `title` (`title`,`year`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; 

挿入マイダンプから:

INSERT INTO `movies` (`title`, `year`, `size`, `added`) VALUES 
('[REC] 2', 0, '716688', '2011-09-23'), 
('5 Days of War', 0, '1435406', '2012-01-09'), 
('[REC]', 0, '1353420800', '2011-11-06'); 

は私含んでPRIMARY KEY (id)を含めるdidntの方法を参照してください、それはまだ私のUNIQUE KEYに対してチェックした場合に表示されますタイトルが存在する。うまくいけば助けてくれるちょっとしたデモです。あなたのテーブルがすでに新しいデータベースに存在している場合は、挿入をスキップしてプライマリキーを含めずに、次の使用可能な値への新しい挿入時に自動的に設定されます。

+0

古いデータベースが主キー5で終了し、ENGINE = MyISAM AutoIncrement = 6と言うと、新しいデータベースの残りのエントリは6,7,8などとしてインポートされますか? – AlxVallejo

+0

正しい場合、自動インクリメントを設定すると、指定された番号から開始されます。その場合、自動的に1で始まり前方に移動し、ダンプから更新しようとするとエラーを引き起こすものがあります。ダンプの挿入にprimary_keyを含めないでください。それは魅力的なように機能するはずです。私は編集し、私のDBの一つからデモを投稿します。 – rackemup420

関連する問題