3

phpMyAdmin を介して DB をインポートしようとしていますが、重複したエントリがどこにあるかが見つからないにもかかわらず、この特定のエラーが繰り返されることに問題があります。

PK の値の一部を変更して何が起こるかを確認しました。つまり、13 を 111 に、12 を 112 に変更しました。

 SQL query:

--
-- Dumping data for table `gno_affiliates`
--
INSERT INTO  `gno_affiliates` (  `id` ,  `affiliate_name` ,  `affiliate_url` ) 
VALUES ( 111,  'Blackberry',  'http://www.blackberry.com' ) , ( 112,  'Android',      'http://www.android.com' ) , ( 12,  'I-Pod',  'http://www.I-Pod.com' ) , ( 14,  'Windows     Mobile',  'http://www.windowsmobile.com' ) , ( 15, 'Meego',  'http://www.meego.com' ) , (     16,  'Zombie Farm',  'http://itunes.apple.com/au/app/zombie-farm-2/id494655448?mt=8' ) ;


MySQL said: 

#1062 - Duplicate entry '111' for key 'PRIMARY' 

テーブルコードは次のとおりです。

CREATE TABLE IF NOT EXISTS `gno_affiliates` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `affiliate_name` varchar(255) NOT NULL,
  `affiliate_url` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;

ありがとう。

編集:

これは、提案されたクエリ カウルの結果です。 phpMyAdmin のスクリーンショット

ご覧のとおり、その ID のエントリは 1 つだけです。

4

1 に答える 1

5

そのキーのエントリがテーブルに既に存在している必要があります。

挿入を実行する前に、次のクエリを実行して確認します。

SELECT * FROM gno_affiliates WHERE id = 111

これをコマンド ラインで実行することもできますが、今後の作業が楽になるため、SQL クライアントをダウンロードすることをお勧めします。SQLYog をお勧めします。

http://code.google.com/p/sqlyog/downloads/list

コミュニティ エディション (.exe) ファイルをダウンロードします。

ダウンロードしたら、プログラムをインストールし、接続の詳細を使用してデータベースに接続します。次に、このクエリを実行できるクエリ エディターが表示されます。

于 2012-12-21T10:26:49.500 に答える