Usuwanie rekordów, które ich nie usuwa |
Usuwanie rekordów, które ich nie usuwa |
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:
gdzie kolumna jest kolumną typu BIGINT (tak zastałem bazę). Usunięcie konkretnego rekordu:
usuwa rekord bez problemu. |
|
|
15.03.2012, 11:18:53
Post
#2
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) |
A strzel takie query:
-------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
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.
|
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 02:55 |