MYSQL.InnoDBでAUTO_INCREMENT値はメモリにだけ保存する。

MYSQL.InnoDBでAUTO_INCREMENT値はメモリにだけ保存する。
なので、再起度すると、AUTO_INCREMENTカラムのMAX値を取得するため、
対象カラムが最大値のレコードをDELETE後、次にINSERTされる前にDBを再起動した場合、AUTO_INCREMENT値が再利用される。

ってことは、AUTO_INCREMENT値を主キーに指定していて、その主キーのみで、違うテーブルから取得するロジックにしており、
さらに外部キーにON DELETE CASCADE指定もしていない状態で削除し再起動すると、再利用されたAUTO_INCREMENT値はもともとDELETEされる前のデータのものだったので、新しくINSERTされるデータの主キーが、意図せぬ呼び出しになってしまうという。

ここわかりやすい↓
http://ameblo.jp/milmil0003/entry-10433792792.html

http://dev.mysql.com/doc/refman/5.1/ja/innodb-auto-increment-column.html