Mysql Tablo id’leri Sıralamak ve Yeniden Dizmek (reorder primary_key)

tablo1 tablosu; id ve label adlı 2 sütundan oluşuyor ve id primary key auto increment mevcut.

insert into tablo1 values(11,'ahmet'),(3,'mahmut'),(4,'muharrem'),(5,'sedat'),(1,'emre');

Şeklinde bir komut ile satırlarınızı olutşturduysanız,

SELECT * FROM tablo1;

komutu çalıştırdığınızda order by komutu kullanmazsanız, sonuçlar aşağıdaki gibi ekleme sıranıza göre gelecektir.

id      label
11	ahmet
3	mahmut
4	muharrem
5	sedat
1	emre

Bu tabloda

ALTER TABLE tablo1 ORDER BY id ASC;

komutunu çalıştırırsanız, yeni

Select * from tablo1;

komutunuzun sonucu şöyle olur:

id	label
1	emre
3	mahmut
4	muharrem
5	sedat
11	ahmet

———————————
İnsanlar yukarıda yazdığımla şu yazdığımı birbirine karıştırıyor.
Şimdi ayrı bir konu olduğunu belirterek; bu satırların id lerini de tekrar sıraya dizmek istiyorsak şöyle yapabiliriz.

SET @count = 0;
UPDATE `tablo1` SET `id` = @count:= @count + 1;

Sonuçlar:

Select * from tablo1;

Sonuçlar :

id      label
1	emre
2	mahmut
3	muharrem
4	sedat
5	ahmet

şeklinde görüldüğü gibi tablo id’lere göre sıraya dizilmiş bir şekilde olacaktır.

Bu konuyla ilgili araştırıyorsanız (neden araştırdığınızı siz biliyorsunuz zaten, benim bunu uygulama derdim; düzenli olması ve en önemlisi bu veritabanını kullanan herkes için bir standart oturtmak istememdi), en mantıklısı ilk yaptığımdan sonra 2. yaptığımı uygulamaktır. Böylece hem satırlar default eklenme sırasına göre değil de , ilgili id’ye göre sıralanmış olacaktır. Daha sonra da , bu idleri de 1 den başlayacak şekilde tekraradan dizmiş olacağız.

Yani bahsetmiş olduğum 2 olayı komutu birlikte kullanınca, artık idleri 1 den ardışık bir şekilde devam eden bir tablonuz olmuş oalcaktır. Özellikle ayar tablolarınızın arada sırada primary_key alanında böyle bir güzelleştirme yaparsınız diye düşündük.. 🙂

2 Comments

    mysql table id leri siralamak ve yeniden dizmek. (reorder primary_key) | Kara Kule

    […] bir komut ile satırlarınızı olut… Devamı için : mysql table id leri siralamak ve yeniden dizmek. (reorder primary_key) Share this:TwitterFacebookLike this:BeğenBe the first to like this post. By ahmet orsorlu […]

    mysql table id leri siralamak ve yeniden dizmek. (reorder primary_key) | Gökhan Tunçkale | Blog

    […] bir komut ile satırlarınızı olut… Devamı için : mysql table id leri siralamak ve yeniden dizmek. (reorder primary_key) ShareFacebookTwitterStumbleUponMoreTumblrRedditLinkedInDiggEmailPrintLike this:BeğenBe the first […]

Bir Cevap Yazın