Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Usuwanie rekordów, które ich nie usuwa
phpion
post 14.03.2012, 17:04:18
Post #1





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
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
cojack
post 15.03.2012, 11:18:53
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


A strzel takie query:

  1. DELETE FROM tabela WHERE IS_DELETED = 1


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
phpion
post 15.03.2012, 17:17:18
Post #3





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




Przyczyna problemu namierzona, całość znajduje się tutaj. Nie ma sensu dublować dyskusji więc skupię się tylko na GL.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 02:55