MySQLでduplicate エラー [2006/10/28]

ついさっきまで動いていたプログラムが突如動かなくなる。
これほどプログラマが驚くことはありません。

・誰か上書きした?⇒ されてない
・MySQLが落ちた? ⇒ 動いてる
・必要な外部ファイルが消えた? ⇒ 存在してる

んー、なぜ?
範囲を絞っていくと、あるテーブルにinsert する部分で落ちていることが判明。

重複レコードがないにもかかわらず、
MySQLが重複(duplicate)エラーを返す。。テーブル壊れたか?

そこで、
# repair table テーブル名

という修復コマンドを実行。
見事回復!
しかし焦るな~。定期的にcheck table と repair table をするシェルが必要です。