1

私はかなり奇妙なMySQLの問題を抱えています。

自動インクリメントされた主キーを持つテーブルがあります。

Primary keys are: 1, 2, 3, 4, 5, 6
Next auto increment key is 7.

ここで、最後の 2 つのエントリを削除します。

Primary keys are: 1, 2, 3, 4
Next auto increment key is 7.

すべては順調です。

さて、なんらかの理由 (おそらく更新) で、mysql デーモンを再起動します。

Primary keys are: 1, 2, 3, 4
Next auto increment key is 5.

このテーブルには外部キーがあるため、重複エントリ エラーが発生します。

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry

mysql を更新するたびに、これらの重複エントリ エラーが発生しないようにするにはどうすればよいですか?

更新: 2003 年からこのバグを発見しました! http://bugs.mysql.com/bug.php?id=199

4

1 に答える 1

0

これが、innodb が次の自動インクリメント値を計算する方法です。メモリに格納し、開始時にMAX(id) + 1値を取得するだけです。

2番目の部分が問題にどのように関連しているかわかりません。外部キーは、FKが重複している限り、重複とは何の関係もありません。

したがって、重複の問題について十分に説明していない可能性があります。duplicate entry少なくとも、エラーを取得するために実際に何をしているのかを説明する必要があります

于 2012-04-01T01:20:26.490 に答える