1

私のホスティング会社は、MySQL4サーバーからMySQL5.5サーバーに移行することを望んでいます。私のウェブサイトは約200,000人以上の登録ユーザーのデータをホストしているため、私のデータベースは比較的大きくなっています。

PHPMyAdminを使用してすべてのテーブルをエクスポートしましたが、現在、それらを新しいサーバーにインポートしようとしています。'user'テーブルをインポートしようとするまで、すべてうまくいきました。詳細については、その構造を次に示します。

CREATE TABLE IF NOT EXISTS `user` (
`login` varchar(32) NOT NULL DEFAULT '',
`firstname` varchar(255) NOT NULL DEFAULT '',
`lastname` varchar(255) NOT NULL DEFAULT '',
`email` varchar(255) NOT NULL DEFAULT '',
...
PRIMARY KEY (`login`),
KEY `country_code` (`country_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

壮観なものはありませんよね?PHPMyAdminのインポートタブを使用して、SQLファイルをアップロードしました。突然、次のエラーが発生しました。

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

私はすぐにデータベースを照会し、ログインが「Jobi」であるユーザー名を検索しました。歯が立たない!

エラーを生成したクエリを見て、手動で実行しようとしました...

INSERT INTO `ft_user`
  (`login`, `firstname`, `lastname`, `email`, ...)
VALUES
  ('Jobi', 'Lorem-First', 'Ipsum-Last', 'xxxxx@yyyy.com', ...);

そしてそれはうまくいきました!

開発マシンでテストを行ったところ、同じエラーが発生しました。誰かが私がここで間違っていることを説明してもらえますか?

前もって感謝します。どんな助けでも本当にありがたいです。

エルベ。

4

2 に答える 2

1

入力ファイルに同じ主キー値を持つレコードの2つのコピーが含まれている場合、このエラーが発生する可能性がありますが、トランザクションがロールバックされると、そのキーは存在しなくなります。入力ファイルに重複がないか確認してください。

于 2012-06-12T06:06:35.543 に答える
0

phpMyAdminの[設定]タブで、次の値を確認してみてください。

[設定]->[SQLクエリ]->[複数のステートメントエラーを無視する]CSV形式を使用している場合:

[設定]->[インポート]->[CSV]->[INSERTエラーで中止しない]SQL形式を使用している場合:

[設定]->[エクスポート]->[SQL]->[挿入を無視する]を使用する

于 2014-08-30T12:43:47.603 に答える