6

私は次のようにしてmgentoインストールを移行しました:

  1. すべてのファイルをコピーしました
  2. データベースをエクスポートしました
  3. mysql ワークベンチを使用してデータベースをインポートしました
  4. base_url を新しいドメインに変更しました
  5. local.xml を正しい設定に更新しました

今私は得ています:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '363624' for key 'PRIMARY'

このキー 363624 のデータベースを検索しましたが、メッセージにあるように複製されていません

どうすればこれを解決できますか?

4

7 に答える 7

7

複製されていませんが、何かが複製しようとしているに違いありません。

データベースをどのようにエクスポートしましたか? ダンプされた SQL ファイルの先頭に「 SET FOREIGN_KEY_CHECKS=0;」などの行があることを確認します。

そうでない場合は、データベースを削除して、次の行をファイルの先頭に追加します。

SET FOREIGN_KEY_CHECKS=0;

...そしてこの行を一番下に:

SET FOREIGN_KEY_CHECKS=1;

...もう一度やり直してください。

于 2013-04-07T23:10:10.533 に答える
0

私の場合、問題はテキスト エディターでの BOM エンコードなしの UTF-8 でした。BOM 付きの UTF-8 に変更したところ、すべて正常に動作しました。

于 2015-05-09T00:08:44.470 に答える
0

この問題は、@creuzerm のコメントで説明されているように、テーブルにlog_visitor_info存在しない訪問者の余分な行がテーブルに含まれているためです。log_visitor

これらのクエリを実行すると、同じ結果が得られるはずです

SELECT MAX(`visitor_id`) FROM `log_visitor`;

SELECT MAX(`visitor_id`) FROM `log_visitor_info`;

この問題を解決するには、次のクエリでこれらの余分な無効な行を削除する必要があります

DELETE FROM `log_visitor_info` WHERE `visitor_id` > ( SELECT MAX(`visitor_id`) FROM `log_visitor` );

一貫性のためにこれも実行します

DELETE FROM `log_visitor_online` WHERE `visitor_id` > ( SELECT MAX(`visitor_id`) FROM `log_visitor` );
于 2018-10-21T12:29:49.693 に答える