Views (MySQL)

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Views zijn virtuele tabellen. Een view wordt samengesteld als een select query, inclusief gebruik van joines. Simpel voorbeeld, afkomstig uit Drupal 7:

create view semaphore as select * from mb7semaphore;

Parsed & backup-issue

  • Een vervelende eigenschap van views: Ze worden geparsed, herschreven en van commentaar ontdaan. Ik vind het altijd vervelend om zulke geparste views te moeten teruglezen. Helaas is het niet anders [1]
  • Nog een vervelende eigenschap van views: Als een view defect is, kun je de betreffende database niet backuppen.

Een workaround die beide problemen min-of-meer oplost: De broncode van views in een apart bestand Bijhouden. Dat bestand zou je zelfs kunnen incorporeren in de betreffende database. Mocht een defecte view een backup tegenhouden, dan kun je de betreffende view ongestraft verwijderen. Vanuit de broncode kun je later het probleem oplossen.

Beperkingen

[2]:

The view definition is “frozen” at creation time and is not affected by subsequent changes to the definitions of 
the underlying tables. For example, if a view is defined as SELECT * on a table, new columns added to the table 
later do not become part of the view, and columns dropped from the table will result in an error when selecting 
from the view. 

Wanneer een view gebruiken?

Als je anders ingewikkelde inline queries zou krijgen. Voorbeeld: Bij het samenstellen van een export-bestand, moet er soms flink wat gegoocheld worden met onderliggende data. Dat kan mooi in een view.

Bronnen