Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Akankah MySQL menggunakan kembali ID yang dihapus ketika Peningkatan Otomatis diterapkan?

InnoDB menyetel ulang bidang auto_increment saat Anda memulai ulang database.

Saat InnoDB dimulai ulang, ia menemukan nilai tertinggi di kolom dan kemudian memulai dari sana.

Ini tidak akan terjadi di MyISAM karena menyimpan id terakhir yang ditambahkan.

Perbarui

Fitur/bug ini telah ada sejak 2003 dan dapat menyebabkan masalah serius. Ambil contoh di bawah ini,

  1. Tabel t1 memiliki kunci utama penyertaan otomatis.

  2. Tabel t2 memiliki kolom untuk kunci utama di t1 tanpa "kendala" kunci asing. Dengan kata lain, ketika sebuah baris dihapus di t1 baris yang sesuai di t2 menjadi yatim piatu.

  3. Seperti yang kita ketahui dengan InnoDB restart, sebuah id bisa diterbitkan kembali. Oleh karena itu, baris yatim piatu di t2 dapat ditautkan secara salah ke baris baru di t1.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kapan saya harus menggunakan indeks komposit?

  2. #162 - Entri duplikat untuk kunci 'PRIMARY'

  3. Apakah 'IS DISTINCT FROM' adalah operator MySQL asli?

  4. MySQL:Buat database seperti?

  5. Cara mengurai waktu dari database