sql >> データベース >  >> RDS >> Mysql

自動インクリメントが適用された場合、MySQLは削除されたIDを再利用しますか

    データベースを再起動すると、InnoDBはauto_incrementフィールドをリセットします。

    InnoDBを再起動すると、列内で最大の値が検出され、そこから開始されます。

    MyISAMは最後にインクリメントされたIDをキャッシュするため、これは発生しません。

    更新

    この機能/バグは2003年から存在しており、深刻な問題を引き起こす可能性があります。以下の例を見てください

    1. 表t1にはauto-inc主キーがあります。

    2. 表t2には、外部キー「制約」のないt1の主キーの列があります。つまり、t1で行が削除されると、t2の対応する行が孤立します。

    3. InnoDBの再起動でわかっているように、IDはできます 再発行されます。したがって、t2の孤立した行は、t1の新しい行に誤ってリンクされる可能性があります。



    1. 使用するメモリが少ない単一の列に複数の値を格納するにはどうすればよいですか?

    2. MySQLでUTF8文字を保存する方法

    3. 同じマシンで複数のMySQLインスタンスを実行する方法

    4. Mysqlいくつかのランダムな行と1つの特定の行を選択します