MySQL a auto_increment

Vladimir Naprstek vladimir.naprstek na prodeco.cz
Úterý Srpen 1 08:19:25 CEST 2000


Miroslav Oravec wrote:

> Pri pouziti funkcie auto_increment, napr. "id" so zistil tuto vlastnost:
>
> -ked pridam zaznam, zvysi cislo o jeden
> - ked zmazem zaznam, (napr. zo stredu tabulky), umaze "id"
> - pri selecte zmazany zaznam vynecha, teda nezoradi znova od 1 do x po
> jednom kroku. (napr. deletnem id=4, budu zaznamy 1,2,3,5,6,
> - ak pridam novy zaznam, volne miesto sa vyuzije, teda bude poradie
> 1,2,3,7,5,6.
>
> Ako urobit, aby po zmazani zaznamu, "prepocital" id na spravne hodnoty
> vzostupne a novo pridany zaznam pripojil na koniec a nie na uvolnene
> miesto?

Mohu se zeptat, proc Vam vadi, ze zaznamy jsou "uvnitr tabulky
poprehazene"? Cisla auto_incrementu jsou dobre, vyhledat je muzete, ziskat
ve spravnem poradi take....

Jestli Vam vadi, ze po smazani id=4 a po pridani noveho zaznamu se ona
ctyrka opet nepouzije, tak to Vam neudela zadna databaze automaticky
(alespon doufam). Muze se Vam totiz lehce stat, ze na onu ctyrku budete mit
v jine tabulce vazbu a pri smazani nadrizeneho zaznamu neopravite podrizeny
zaznam. Bordel ktery by Vam potom vznikl by mohl byt dobrou nocni murou.
Pokud NUTNE potrebujete, aby id sla "po sobe", musite si mazani a update id
zbylych zaznamu zaridit sam....

Pokud budete patrat po dalsich vlastnostech autoincrementu, tak zkuste
smazat posledni zaznam a pak hned dalsi pridat...

--
Vladimir Naprstek

e-mail vladimir.naprstek na prodeco.cz





Další informace o konferenci Test