![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 4.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam tabelę o strukturze [id][data1][data2]...[datan]. id jest primary key. Normalnie, żeby dodać nowy wiersz to starczy auto_increment, ale to jest pole typu SMALLINT i co będzie jeśli auto_increment dojdzie do końca?
Pewnie się wykrzaczy. A że dane będą co jakiś czas usuwane, więc może dojść do sytuacji, że auto pojedzie już pod koniec SMALLINTa a przed już nie będzie żadnych wierszy z mniejszymi wartościami. Więc moje pytanie: Czy da radę zrobić w MySQL (a może nawet jest specjalna funkcja do tego?) poszukiwanie najmniejszej wolnej wartości? Czyli najmniejszego id w tym przypadku? Ja to rozwiązałem po swojemu, ale nie jest to ładny sposób a może znacie jakieś tricki ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zmienić typ pola na int
![]() Ale ja mam zbyt małą wiedzę w tej dziedzinie (SQL) więc, możliwe że coś jest. Teraz (dosłownie w tej chwili) wpadł mi pomysł aby mieć tablicę wolnych id, i dodać wyzwalacz że przy kasacji dodaje id kasowanego elementu do tamtej tablicy, a przy dodawaniu sprawdzamy czy jest jakiś w tamtej tablicy, jeśli tak to kasujemy stamtąd i tworzymy rekord z tym id, jeśli nie ma to wrzucamy domyślną wartość. Tylko że to zwiększy i trochę pamięciowo (dodatkowa tablica) jak i obliczeniowo, przy dodawaniu/usuwaniu dodatkowe zapytanie, chyba jednak bym dał int na pole id ![]() -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 22.06.2025 - 08:12 |