Mam stworzona pole ID auto_increment klucz podstawowy, i stworzylem srypt kasujacy elmenty:
if (!$zapytanie=mysql_query("delete from upload where id = '$p_id'"))
{
echo ("nie skasowane");
};
i powstaje mi sytuacja ze elementy w tabeli przyjmuja taka numeracja 1 5 6 7 8 postaja dziury po usunieciu elementow. Czy istnieje mozliwosc by automatycznie po usunieciu owa 5 stala sie 2
MySQL - klucz podstawowy
Re: MySQL - klucz podstawowy
Na pewno nie istnieje w SQL definicja pola, które samo by reagowało w taki sposób (choć na pewno to Kopernik nie żyje, może jest coś o czym nie słyszałem bo nie znam całego SQL'a na pamięć, ale szczerze w to wątpie).
Na pewno da się poprzez dodanie zapytania bezpośrednio po usunięciu rekordu:
update upload id = id -1 WHERE id>'$p_id';
Przesunie Ci to wszystkie rekordy w dół o 1, które miały większe numery niż ten kasowany. Tyle, że takie rozwiązania są zbyteczne i niezwykle nieefektywne. Po co zamulać system?
Niezależnie czy masz dziury czy nie jeśli np: chcesz znaleźć kolejny rekord od powiedzmy pierwszego to wystarczy użyć zapytania:
select lista_pól from upload where id>1 limit 1
Na pewno da się poprzez dodanie zapytania bezpośrednio po usunięciu rekordu:
update upload id = id -1 WHERE id>'$p_id';
Przesunie Ci to wszystkie rekordy w dół o 1, które miały większe numery niż ten kasowany. Tyle, że takie rozwiązania są zbyteczne i niezwykle nieefektywne. Po co zamulać system?
Niezależnie czy masz dziury czy nie jeśli np: chcesz znaleźć kolejny rekord od powiedzmy pierwszego to wystarczy użyć zapytania:
select lista_pól from upload where id>1 limit 1
