Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

FIREBIRD/SQL - Kasowanie pól od do po dacie

Rogoble 22 Sie 2012 22:17 1533 9
  • #1 22 Sie 2012 22:17
    Rogoble
    Poziom 9  

    Witam, muszę wykasować pola z starszych lat, próbowałem ręcznie ale to robota na kilka dni, wiem że mogę to prościej zrobić przez zapytanie sql i polecenie DELETE ale musi być z warunkiem aby mi wybral okreslony zakres, występuje kolumna data i w niej są daty i myślę że po tej kolumnie będzie najlepiej np od 2004 do 2010 roku, problemem może także być że występują w kolumnie data puste pola, najlepiej jak spojrzycie na obrazek

    DELETE FROM dekrety
    WHERE ??

    no i tu nie wiem co dalej ;] pomocy potrzebuje pomocy mądrych głów

    Pozdrawiam
    Sebastian

    FIREBIRD/SQL - Kasowanie pól od do po dacie

    -1 9
  • #3 22 Sie 2012 22:26
    Rogoble
    Poziom 9  

    bardzo dziękuję a jeszcze mi powiedz jak się pozbyć tych pól gdzie jest pusto czyli nie ma daty jak na obrazku widzisz

    EDIT

    po skasowaniu tych pół wielkość bazy się nie zmieniła ? :( trzeba to jakoś przeindeksować "cycuś ????

    0
  • #4 22 Sie 2012 22:49
    gaskoin
    Poziom 38  

    Kod: sql
    Zaloguj się, aby zobaczyć kod


    Być może trzeba zrzutować stringa na typ date, stąd mogą wynikać problemy. Pracowałem na oraclu więc mogę gdybać jak jest tutaj :)

    0
  • #5 23 Sie 2012 16:51
    Dżyszla
    Poziom 42  

    Wielkość bazy się nie zmieni, to oczywiste. Prawie każda jedna baza danych nie usuwa fizycznie miejsca po skasowaniu rekordów. Dopiero zrobienie BR (backup - restore) pozwala skompaktować bazę. (W przypadku niektórych, np MySQL są specjalne polecenia do tego, ale FB nic takiego nie ma)

    0
  • #6 23 Sie 2012 17:54
    Rogoble
    Poziom 9  

    czyli mogę to zrobić czy raczej nie da rady ?? :> a jeżeli da rady to łopatologicznie poproszę :)))

    0
  • #8 23 Sie 2012 18:13
    Rogoble
    Poziom 9  

    No tak, nie bardzo wiem jak się za to zabrać. Mam plik z bazą i program.exe, który to odpala, a w tym programie żadnych opcji jeśli chodzi o backup. Tutaj zawsze backup był przez skopiowanie tych 2 plików bazy i exe

    0
  • #9 23 Sie 2012 18:18
    Dżyszla
    Poziom 42  

    W katalogu firebirda jest program gbak. Należy go użyć zarówno do jednej jak i drugiej operacji. Nie pamiętam dokładnie parametrów, a nie mam pod ręką programu, ale generalnie wywołujesz program, podajesz przełącznik wykonania backup (bodajże -b), następnie plik bazy i plik kopii (do utworzenia). Potem uruchamiasz jeszcze razi zastępujesz bazą odtworzoną z kopii (bodajże -rep), dodatkowo trzeba podać użytkownika i hasło administratora (-user i -password).

    Tu jest instrukcja obsługi: http://www.firebirdsql.org/manual/gbak.html

    0
  • #10 23 Sie 2012 19:22
    Rogoble
    Poziom 9  

    No, pięknie i ładnie zrobione, 4-krotnie baza zmniejszona po operacji backupu i restore. Dziękuje za pomoc, nigdy nie miałem z tym do czynienia i dzięki radom bez problemu sobie poradziłem. Dzięki Dzięki Dzięki ;]

    0