C# SQL veri tabanında ID sıralaması

iBerkiN

Decapat
Katılım
18 Ekim 2021
Mesajlar
52
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
1685781020759.png


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.
 
Son düzenleme:
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.

O Tablo'da ıdlerin sıralı olmasını istiyorum.

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.

Sorgu işlemini yapıyorum fakat o tablo üzerinde ID'lerin doğru sıralanmasını istiyorum.
 
O Tablo'da ıdlerin sıralı olmasını istiyorum.



Sorgu işlemini yapıyorum fakat o tablo üzerinde ID'lerin doğru sıralanmasını istiyorum.
Bir veri silindiğinde tablodaki bütün verileri çekip A_I yi sıfırlayıp bütün verileri tekrar girmeye ne dersin?

Sıralı olması veya olmaması ne ifade ediyor acaba 🤔
 
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.
 

Yeni konular

Geri
Yukarı