Bir bağış uygulaması gibisinden bir şey yapıyorum. Bağışçıyı ekliyoruz SQL veri tabanına ondan sonra sağ taraftaki gibi bağışçıları listeleyebiliyoruz. Bir bağışçıyı ekleyince otomatik ID sıralaması veriyor. Bir bağışçıyı sildiğim zaman fotoğraftaki gibi 1, 2, 4 oluyor. Ben de silme işlemi yapınca tekrardan bu idlerin yenilenmesini istiyorum.
AUTO_INCREMENT olan bir veriyi re-order yapmanı tavsiye etmem, kimse tavsiye etmez. AUTO_INCREMENT sıralı bir sayı vermez, ünik bir sayı verir. Bunu neden istiyorsunuz ki?
İlla düzgün bir sıraya ihtiyacınız varsa ROW_NUMBER() ve OVER() kullanabilirsiniz:
SQL:
SELECT ROW_NUMBER() OVER(ORDER BY id ASC) AS bagisci_sira, bagisci_adi FROM bagiscilar
Bu sorgunun sonucunda bagisci_sira olarak adlandırdığım sonuç her zaman doğru sırayı gösterecektir, ID'de atlama olsa bile.
Neden böyle bir şey yapmak istiyorsun ki?
Kaç kayıt olduğunu mu görmek istiyorsun? SELECT COUNT(*) FROM tablo kullan.
Kaçıncı kayıt olduğunu mu öğrenmek istiyorsun? @Fatalis hocam cevaplamış.
Ancak A_I yi düzenleme. Her girişte +1 değer alan basit bir sistemi karışık kuruşuk bir şey yapmanın mantığı yok.
Neden böyle bir şey yapmak istiyorsun ki?
Kaç kayıt olduğunu mu görmek istiyorsun? SELECT COUNT(*) FROM tablo kullan.
Kaçıncı kayıt olduğunu mu öğrenmek istiyorsun? @Fatalis hocam cevaplamış.
Ancak a_ı yi düzenleme. Her girişte +1 değer alan basit bir sistemi karışık kuruşuk bir şey yapmanın mantığı yok.
Auto_ıncrement olan bir veriyi re-order yapmanı tavsiye etmem, kimse tavsiye etmez. Auto_ıncrement sıralı bir sayı vermez, ünik bir sayı verir. Bunu neden istiyorsunuz ki?
İlla düzgün bir sıraya ihtiyacınız varsa ROW_NUMBER() ve OVER() kullanabilirsiniz:
SQL:
SELECT ROW_NUMBER() OVER(ORDER BY id ASC) AS bagisci_sira, bagisci_adi FROM bagiscilar
Bu sorgunun sonucunda bagisci_sira olarak adlandırdığım sonuç her zaman doğru sırayı gösterecektir, ID'de atlama olsa bile.
Her veri sildiğinde ID'leri tekrar oluşturmak hiç akıllıca bir fikir değil. Küçük bir projede çok sorun yaratmayacaktır ama proje büyüdükçe epey başına dert açacacak. O tabloyu referans alan diğer tablolarda da değişiklik yapman gerekecek. Amelelik olur. Çoğu zaman veri tabanından veriyi komple silmek yerine activelik durumu eklenip o değiştirilir. Böylece veri tablodan tamamen kaybolmaz, ID'leri yenilemeye gerek kalmaz ve diğer tablolardaki gerekli bölümlerde sıkıntı yaşanmaz.