Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Usuwanie rekordów, które ich nie usuwa
phpion
post
Post #1





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Witam,
mam dość dziwną sytuację. W tabeli mam ok. 1,7mln rekordów. Potrzebuję usuwać te rekordy, które są starsze niż 3 miesiące. Żaden problem! Najpierw napisałem bezpieczne zapytanie, które ustawi flagę is_deleted dla wybranych rekordów, żeby nie usunąć czegoś za dużo. Następnego dnia (zadanie uruchamiane w CRONie) sprawdziłem i zdecydowana większość rekordów została oznaczona jako te do usunięcia. Zmieniłem więc UPDATE na DELETE, sprawdziłem dziś - liczba rekordów się nie zmieniła. Zdziwiło mnie to, ale uruchomiłem zadanie ręcznie. Mieliło i mieliło, w końcu skończyło. SELECT COUNT(id) - znowu tyle samo rekordów. Zrobiłem dla pewności jeszcze VACUUM ANALYZE, po czym ponownie sprawdziłem ilość rekordów - bez zmian. Odpaliłem zapytanie z poziomu PgAdmina, znowu odczekałem ładne -naście minut, znowu wykonałem zliczenie rekordów i znowu bez zmian! Co może być przyczyną nie usuwania się rekordów?

Dodam, że:
- nie, nie ma na tabeli triggera zabezpieczającego przed usunięciem danych,
- tak, zapytanie usuwające na pewno jest poprawne.

Pozdrawiam,
pion

// Edit:
Dla jasności: dane usuwam takim zapytaniem:
  1. DELETE FROM tabela WHERE kolumna < 1323845895;

gdzie kolumna jest kolumną typu BIGINT (tak zastałem bazę). Usunięcie konkretnego rekordu:
  1. DELETE FROM tabela WHERE id = 123;

usuwa rekord bez problemu.
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: 15.09.2025 - 01:47