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

Buat kenaikan otomatis mengisi nomor yang sebelumnya dihapus

Anda tidak ingin menggunakan kolom penambahan otomatis. Jika Anda ingin mengisi kekosongan, setel ke kolom int dan tangani logika di proc atau sisipan yang disimpan.

EDIT:

Karena ini adalah kolom int, Anda dapat mengurutkannya secara numerik. Cukup lakukan SELECT Ids FROM Table Order By Ids untuk mendapatkan semua Id dan memeriksa celah dalam kumpulan data yang dikembalikan.

Mungkin ada cara yang lebih halus untuk melakukan ini, tetapi Anda dapat mengulang hasilnya dengan kursor dan membandingkannya dengan INT variabel yang bertambah sepanjang loop. Saat Anda menemukan celah (tidak cocok) - putuskan loop dan gunakan INT nilai sebagai INSERT . Anda Indo.

Saya tidak akan menulis kode untuk Anda, tetapi itu adalah beberapa langkah untuk membawa Anda ke arah yang benar. Ini harus menjadi pemrograman yang sangat mendasar yang harus dapat Anda tangani.

Semoga membantu.

EDIT #2:

Seperti yang telah dicatat orang lain, langkah terbaik Anda adalah meninggalkan celah. Kecuali jika ada beberapa cap di meja sejauh panjangnya dan Id HARUS 1-30 (aneh), biarkan saja. Tidak ada gunanya mengisi celah.

EDIT #3:

Satu hal lagi yang perlu dipertimbangkan:jika Anda benar-benar harus menyimpan 1-30 karena alasan tertentu, jangan hapus baris Anda. Tambahkan kolom untuk menandai setiap baris sebagai aktif atau tidak, lalu perbarui saja baris yang tidak aktif saat Anda perlu, lalu tandai sebagai aktif. Ini SANGAT retas, tetapi persyaratan Anda agak retas, jadi...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan nama tabel menggunakan pernyataan SELECT di MySQL

  2. Bagaimana cara memperbarui mysql dengan python di mana bidang dan entri berasal dari kamus?

  3. Dapatkan nilai Min dan Max dengan satu kueri MySQL dengan Group BY

  4. MySQL - Koneksi persisten vs penyatuan koneksi

  5. Saya tidak dapat memuat driver JDBC untuk MySQL