2010-08-05 81 views
8

En el trabajo, constantemente me dicen que cuando se realizan cambios en un db MySQL, las vistas deben 'refrescarse'. La solución manual aceptada parece estar yendo a Workbench, haciendo clic con el botón derecho y presionando 'Actualizar todo'¿Actualizar las vistas de MySQL?

¿Está destinado a borrar el caché? ¿O eso reconstruye las vistas desde cero, o es esto totalmente falso? Parecen ser capaces de decir cuándo las vistas no se han 'refrescado', y no estoy seguro de que lo entiendan más que: "Porque las cosas necesitan ser actualizadas cuando se cambian".

Si solo está limpiando la caché, ¿bastaría con 'LIMPIAR TABLAS CON LEER BLOQUEO'?

Respuesta

17

Las vistas no necesitan actualizarse cuando cambia datos. Cuando los consultas obtendrán los datos más nuevos.

Puede ser que tenga que volver a crearse si sus estructura de la tabla cambios:

La definición de vista es “congelada” en el momento de la creación, por lo que los cambios en las tablas subyacentes después no afectan a la definición de la vista. Por ejemplo, si una vista se define como SELECCIONAR * en una tabla, las columnas nuevas agregadas a la tabla más adelante no se vuelven parte de la vista.

Source

+1

Y si quisiera añadir las nuevas columnas en la que tendría que actualizar la definición de la vista? –

+2

@William: Sí, si desea que aparezcan las nuevas columnas en la vista. Pero no creo que "Refresh all" lo haga por ti. Creo que tiene que soltar la vista y volver a crearla, o usar ALTER VIEW: http://dev.mysql.com/doc/refman/5.0/en/alter-view.html –

+0

Gracias, creo que esa es la solución. Necesita ser alterado. –

Cuestiones relacionadas