Bei der Arbeit wird mir ständig gesagt, dass bei Änderungen an einer MySQL-Datenbank die Ansichten "aktualisiert" werden müssen. Die akzeptierte manuelle Lösung scheint in Workbench zu gehen, mit der rechten Maustaste zu klicken und 'Alle aktualisieren' zu drücken.
Soll das nur den Cache löschen? Oder baut das die Ansichten von Grund auf neu auf oder ist das völlig falsch? Sie scheinen in der Lage zu sein, zu sagen, wann die Ansichten nicht "aufgefrischt" wurden, und ich bin mir nicht sicher, ob sie das mehr verstehen als "Weil Dinge aktualisiert werden müssen, wenn sie geändert werden."
Wenn nur der Cache geleert wird, wäre 'FLUSH TABLES with READ LOCK' ausreichend?
Ansichten müssen nicht aktualisiert werden, wenn sich die Daten ändern. Wenn Sie sie abfragen, holen sie die neuesten Daten.
Sie müssen möglicherweise neu erstellt werden, wenn sich Ihre -Tabellenstruktur ändert:
Die Ansichtsdefinition ist zum Zeitpunkt der Erstellung "eingefroren", so dass Änderungen an den darunter liegenden Tabellen die Ansichtsdefinition nicht beeinflussen. Wenn eine Ansicht beispielsweise als SELECT * für eine Tabelle definiert ist, werden neue Spalten, die später zur Tabelle hinzugefügt werden, nicht Teil der Ansicht.