26

http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

That document I'm reading seems to say something like:

"In this case (when the AUTO_INCREMENT column is part of a multiple-column index), AUTO_INCREMENT values are reused if you delete the row with the biggest AUTO_INCREMENT value in any group."

I don't really understand what's being said there. Aren't the values supposed to be reused automatically?

Thanks in advance...

4

5 に答える 5

2

InnoDB エンジンで説明したように、キャッシュされていないため、再起動前に行が削除された場合、最後に使用された PK が再利用されます。この PK が別のテーブルの外部キー (FK) である場合、問題が発生する可能性があります (FK 地獄)。削除された人の追加データが拾われたので、小柄なおばあさんが 195 cm (!) まで撮影したときに問題を発見したのはこのためです。これを回避するには、子テーブルに「ON DELETE CASCADE」を実装するか、(私の好みのオプションではありませんが) この問題を回避するコードを作成します。

于 2016-04-01T16:21:03.260 に答える