[ NikolaVeber @ 30.07.2003. 13:13 ] @
Pozdrav !

Interesuje me da li je moguce u tabeli koja ima polje id koje je autoincresement ubaciti novi red na pocetak (da ima id=1, a da svi ostali dobiju id=id+1), a da ne menjam sve pojedinacno.

Hvala !
[ byTer @ 30.07.2003. 16:14 ] @
Nemoguce je!
Osim nekim dosta slozenim algoritmom za pomeranje... mada \
[ broker @ 31.07.2003. 12:51 ] @
Nikada se slog ne umece nego dodaje na kraj tabele i nikad se ne oslanja na fizicki redosled slogova u tabeli.

Ako ti je potreban odredjeni redosled slogova ubaci u slog kolonu cija ce namena biti da ti obezbedi taj redosled.

Ako ti samo treba da jednokratno izmenis vrednosti u autoincrement polju nije nezivodjivo mada je prilicno komplikovano. Jednom sam to radio i prilicno se naznojio.

Probaj ovako: napravi kopiju strukture pocetne tabele pa prebaci u nju SQL upitom slogove (sve kolone osim autincrement). Vidi hoce li server automatski dodeliti vrednosti autoincrement polju za svaki slog. Redosled slogova odredjujes u samom SQL upitu.
[ jandearc @ 31.07.2003. 20:54 ] @
Citat:
byTer:
Nemoguce je!
Osim nekim dosta slozenim algoritmom za pomeranje... mada \ ;)


Nije baš nemoguće, ali je složeno i pomalo besmisleno. Ako baš insistiraš, kao što broker reče, napravi kopiju postojeće tabele u vidu privremene(temp) tabele i u nju prebaci sve slogove iz prethodne tabele. Zatim izbriši sve slogove originalne tabele, i dodaj željeni slog. Nakon toga appenduj (dodaj) sve slogove iz privremene tabele u originalnu. Ouila! Imaš svoj željeni slog na početku! Međutim, sada ćeš imati poremećene brojeve autoincrement kolone. Npr . ako su slogovi orig.tabele u autoincrement koloni počinjali sa 1, a ti imao 42 sloga, nakon izvršene operacije imaćeš na početku orig.tabele slog sa vr.43(i to će ti biti slog koji si ubacio).
Jako jako teško(ja ne znam je li moguće) ćeš zadržati sve vrijednosti autoincrement polja, a slog dodati na početak.