İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Tablodaki id değerleri arasındaki boşluğu doldurmak

maxcilopez

0
İyinet Üyesi
Katılım
27 Ekim 2006
Mesajlar
545
Reaction score
0
Mrb arkadaşlar mysql tablomda idler şu şekilde
1
2
3
6
7
10
13
14
15
16
Şeklinde gidiyor

Yani atlamalar var 7 den ona atladığı gibi çünki ara değerler silindi ben kendim sildim
Şimdi yapmak istediğim bu ara değerlerde atlama olmasın o boşluğu bir sonraki doldursun ve o şekilde devam etsin yani
1
2
3
6
7
10
13
14
15
16 bu
1
2
3
4
5
6
7
8
9
10
şeklinde sıralansın
Şuan 24000 tane id var ve id sonuncusu 28000 gösteriyor yani arada 4000 tane fazla id var Tşk.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
ISAM tipi tabloda mümkün boşluğa atar ama MyISAM olunca mecburen en yükseği atar diye biliyorum. iyinet bu konuda daha bilgili, o da birşey söyleyecektir.
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
69
Konum
Sakarya
Online isem beklemek yerine bir PM ile dürtün.
Gelelim konumuza.
Öncelikle neden böyle birşey yapmak istediğini merak ettim.
Tavsiyem elleme olduğu gibi kalsın, araları doldurmanın hiçbir artısı yoktur.
Veritabanında bu id lerin yeri aslında boş kalmaz.
Ancak bu kadar id sildiysen tabloyu optimize et, phpMyadminde bu opsiyon var.
Yada mysql de:
optimize table tablo_adı
bu komut tabloyu defrag yapar.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
ISAM,MyISAM konusundaki tahminim doğru mudur peki iyinet, sanki böyle diye hatırlıyorum ben?
 

GNeRaL

0
İyinet Üyesi
Katılım
24 Şubat 2005
Mesajlar
2,869
Reaction score
16
Konum
Samsun
dbforums.com diye bir forum gördüm, sanırım oranın da arkadaşa katkısı olabilir.
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
69
Konum
Sakarya
ISAM,MyISAM konusundaki tahminim doğru mudur peki iyinet, sanki böyle diye hatırlıyorum ben?

Evet bu konuda haklısın, MyISAM ve INNODB tablo tiplerinde silinen id ler bir daha kullanılmaz ve arttırılırken, ISAM tablo tipinde silinen idler tekrar kullanılabiliyor.
 

hakimi

0
İyinet Üyesi
Katılım
1 Temmuz 2006
Mesajlar
1,356
Reaction score
0
hocam bir script yaz eğer çok istiyorsan. 28000 id si olan tablonun verisiz halini al sql sorgusuyla tekrar outo increament kısmını silip farklı bir adla phpmyadminden gir.

sonra yazdığın scripti çalıştır order by id ASC ile verileri giren kısımda id yi boş bırak o kendisi 5 sn de hepsini sıralar 24000 e iner.
yani bir select ve bir insert komutuna bakıyor istediğin şey bir de bağlantı lazım tabi :)
Sonra ana tabloyu silip rename table yeni to eski de o kadar :)
 

soundofvtec

0
İyinet Üyesi
Katılım
1 Şubat 2006
Mesajlar
826
Reaction score
0
Konum
hawaii
php bilmem ama bunu devamlı yaptığım için;
doğru anladıysam sıralı dizmek istiosun

phpmyadmin den "yapı"(structure) a gir
ID field ini komple sil

yeni field oluşturmak için alttan 1 ekle de
ismine ID yaz en sağda da auto_increment seç ve yeni sıralı ID in hazır

eğer bunu kasdediyosan böle
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst