Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Ograniczenie liczby rekordów w tabeli
Forum PHP.pl > Forum > Bazy danych
l0ud
Cześć. Załóżmy, że mam tabelę, której jedyną kolumną jest identyfikator (auto_increment). Chcę, by do tabeli nie dodawało się więcej niż 10 rekordów - nowe pozycje mają 'zastępować' stare. Nie wiem niestety, jak najwydajniej to zrobić. Pomyślałem, żeby przy dodawaniu nowej pozycji podliczyć zapytaniem liczbę rekordów - jeżeli byłaby za duża wykonywałoby się zapytanie pobierające najmniejszy identyfikator, a następnie usuwające pozycję go posiadającą. Jest to jednak rozwiązanie co najmniej nieeleganckie i niewydajne.
Czy da się to zrobić w jakiś lepszy sposób? smile.gif

Pozdrawiam
dr_bonzo
Trzymaj w innym miejscu pozycje [id: 1,2 ... 10] na ktora masz wstawic rekord. Po wstawieniu, inkrementujesz, jak dojdziesz do 11tu to zamieniasz na 1 itd
l0ud
Zapomniałem napisać chyba najistotniejszego - istnieje możliwość usuwania rekordów z tej tabeli. To komplikuje tą metodę sad.gif
JoShiMa
Mozesz próbować używać w stosunku do tej tabeli triggera, ale w MySQLu to jeszcze chyba nie działa dobrze. Po drugie zamiast kasować post z określonym id po prostu zmieniaj jego zawartość. czyli sprawdzasz ile masz w bazie wpisów jeśli <10 to INSERT jeśli == 10 to UPDATE. Taki sam warunek możesz zaszyć w triggerze jeśli uda ci się go uruchomić w Twojej wersji bazy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.