Advanced MySQL - Zwischenspeicherung - Views - Weitere Möglichkeiten
1. Einen View löschen
Null problemo, einfach mit DROP
und anstelle von TABLE
ein VIEW
nehmen.
DROP VIEW view_name;
2. Möglichen View überschreiben
CREATE OR REPLACE VIEW view_name ...
3. Änderungen am View vornehmen
UPDATE
Ist in praktisch allen Fällen möglich, so lange man die folgenden Dinge beachtet. Änderungen bei Feldern vom Typ PRIMARY KEY
und UNIQUE KEY
sind nicht möglich, wenn es schon einen Datensatz mit dem entsprechenden Wert gibt.
INSERT
Ist im Prinzip möglich, wenn die referentielle Integrität nicht verletzt wird.
DELETE
Ist im Prinzip möglich, wenn die referentielle Integrität nicht verletzt wird.
Wichtig!
Eigentlich sind Views dazu gedacht, Daten auszulesen, nicht sie zu ändern. Darum sollte man von solchen Dingen auch tunlichst die Finger lassen. Und wenn irgend möglich, die Relationen in den Tabellen über Fremdschlüssel darstellen. Dann kann man nicht viel kaputt machen.
4. Besonderheiten
ORDER BY/LIMIT
Diese Anweisung innerhalb eines Views wird ignoriert, wenn die Anfrage an den View ebenfalls ein ORDER BY
enthält.
Das gilt auch für LIMIT
.
Veränderbarkeit
Wie ich oben schon sagte, kann man in einem View auch UPDATE
-, INSERT
- oder DELETE
-Anweisungen
ausführen. Allerdings dürfen dann in ihm keine der folgenden Anweisungen genutzt werden. Denn die sorgen dafür dass er nicht mehr
geändert werden kann.
SUM()
,MIN()
,MAX()
,COUNT()
und was es da noch so an Gekröse gibt.DISTINCT
GROUP BY
HAVING
UNION
- Subselects
5. Views auf Views legen
Geht auch, aber man sollte es nicht übertreiben. Außerdem gibt es hier noch ein paar Feinheiten, die ich in einem kommenden Tutorial nachreichen werde.
CREATE VIEW uebersicht AS
...
CREATE VIEW detail AS
SELECT
*
FROM
uebersicht
WHERE dispo < 1000;
SELECT vorname, name FROM detail;
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt