2010-08-05 14 views
8

W pracy nieustannie mi mówi się, że gdy wprowadzane są zmiany w bazie danych MySQL, to widoki muszą być "odświeżone". Wydaje się, że zaakceptowane rozwiązanie ręczne wchodzi do Workbencha, klikając prawym przyciskiem myszy i klikając "Odśwież wszystko".Odśwież widoki MySQL?

Czy to jest po prostu wyczyszczenie pamięci podręcznej? Czy może to odbudować widoki od zera, czy jest to całkowicie fałszywe? Wydaje się, że potrafią powiedzieć, kiedy widoki nie zostały "odświeżone", i nie jestem pewien, czy rozumieją to więcej niż "Ponieważ rzeczy muszą zostać odświeżone, kiedy są zmieniane".

Czy wystarczy wyczyścić pamięć podręczną, czy wystarczyłoby "TABLETY PRZECIWWYBUJĄCE Z BLOKADĄ"?

Odpowiedz

17

Widoki nie muszą być odświeżane po zmianie danych. Po wysłaniu zapytania otrzymają najnowsze dane.

Mogą one muszą być odtworzone jeśli swoimi struktura tabeli zmian:

Widok definicja jest „zamrożony” w momencie tworzenia, więc zmiany w tabelach bazowych potem nie wpływają na definicję widoku. Na przykład, jeśli widok jest zdefiniowany jako WYBIERZ * w tabeli, nowe kolumny dodane do tabeli później nie stają się częścią widoku.

Source

+1

A gdybym chciał dodać nowe kolumny w I musiałaby zaktualizować definicję widoku? –

+2

@William: Tak, jeśli chcesz, aby nowe kolumny pojawiły się w widoku. Ale nie uważam, że "Odśwież wszystko" robi to za Ciebie. Myślę, że musisz upuścić widok i ponownie go utworzyć, lub użyć ALTER VIEW: http://dev.mysql.com/doc/refman/5.0/en/alter-view.html –

+0

Dzięki, myślę, że to jest rozwiązanie. To musi zostać zmienione. –