Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jeśli liczba rekordów >500 w tedy usuń nadmiar
expert
post
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


Witam,

potrzebuję za pomocą MYSQL kontrolować liczbę rekordów, aby nie przekraczała 500, jeśli przekracza, to nadmiar ma być usuwany. Mam taki kod:
  1. DECLARE `tr` INT DEFAULT 0;
  2. SELECT COUNT(*) INTO tr FROM `users`;
  3. IF tr > 500 THEN
  4. DELETE FROM `users` ORDER BY time ASC LIMIT `tr`;
  5. END IF;

Jednak MYSQL zwraca pusty błąd. Czy ten kod jest poprawny? Chce to wszystko zrobić za pomoca jednago zapytania.

Ten post edytował expert 5.01.2013, 22:30:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@expert: Nie posiadasz żadnej kolumny pozwalającej unikalnie zidentyfikować rekord? Nie jest to prawdopodobnie najlepszy projekt bazy w takim razie. W czym szkodziłoby dodanie kolumny ID?
@mokry: MySQL obsługuje klauzulę LIMIT w ograniczony sposób dla zapytań typu DELETE, tj. umożliwia jedynie określenie ilości rekordów do usunięcia bez możliwości podania OFFSETu.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 11:54