私はmysql (5.0.32-Debian_7etch6-log)を使用しており、夜間に実行するバルク ロードphp (5.2.6)スクリプト( PDO 経由でZend_DB (1.5.1) を使用) を使用しています。これは次のことを行います。
- 4 つの「インポート」テーブルのセットを切り捨てる
- これら4つの「インポート」テーブルにデータを一括挿入します(以前にテーブルにあったIDも再利用しましたが、テーブル全体を切り捨てたので、問題にはなりませんよね?)
- すべてがうまくいけば、「ライブ」テーブルの名前を「一時」に変更し、「インポート」テーブルを「ライブ」に変更し、「一時」(古い「ライブ」) テーブルを「インポート」に変更します。
これは何週間もうまくいきました。現在、一括読み込みプロセス全体の途中で、時折これを取得しています。
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '911' for key 1
これは、既に切り捨てられる前にテーブルにあった最初の ID ではないことに注意してください。スクリプトを手動で再度開始すると、魅力的に機能します。
何か案は?残りのインデックス、おそらく名前の変更と関係がありますか?
さらに、後でID 911のエントリのテーブルを確認すると、そこにもありません。