Pagina 1 din 1

sortare mysql dupa stergerea unui camp

Scris: Mie Oct 20, 2004 10:01 am
de immanuel
de ceva vreme am observat o ciudatenie in mysql
am un tabel cu mai multe campuri, indexate dupa un ID. in tabel introduc si sterg valorile.
dupa ce am sters o valoare, ramane o pauza intre ID-uri, dar la adaugarea unei valori noi o pune la coada, nu in loocul valorii lipsa. asta este in regula, desi nu inteleg de ce...

problema este ca mai am o coloana, a categoriilor, iar cand dau sortare dupa aceasta, imi sorteaza aiurea, nu in ordinea ID-ului. a trebuit sa sterg coloana ID si sa o recreez ca sa rezolv problema.

cum pot sa fac sa evit asa ceva, adica sa recreez coloana index de fiecare data cand sterg ceva?


exemplu:
sortare dupa Categ
ID Categ Produs
1 0 x
2 0 y
3 0 z

sterg produsul 2 si adaug inca un produs, dar il indexeaza ca 4 nu ca 2, care e liber (de ce?)
dau din nou sortare dupa Categ si obtin:
ID Categ Produs
1 0 x
4 0 h
3 0 z

merci anticipat ;)

Scris: Mie Oct 20, 2004 3:01 pm
de un_guru
auto_increment adauga o unitate la ultima
daca ultimul id e 3 urmatorul va fi 4 chiar daca 2-ul lipseste. Ca sa le reorganizezi, trebuie sa le stergi de fiecare data si sa le scrii din nou specificand id-ul. Poti sa faci un script care sa faca treaba asta automat.

Scris: Mie Oct 20, 2004 7:11 pm
de kokosanu
de ce ai vrea sa faci asa ceva? daca ajungi la un moment dat sa faci un redesign la aplicatie si normalizezi baza de date, ajungand la o versiune relationala? toata treaba asta iti da peste cap aplicatia.

oricum, nu iti afecteaza performantele faptul ca ai o gaura in id-uri, iar cu ordonarea fa "order by categ, id"