Insert mit View?

1 Antwort

Bei Views handelt es sich um virtuelle Tabellen, die bei Aufruf/Anfrage von der Datenbankengine generiert werden. Daten können nur über sie eingefügt werden, wenn bestimmte Voraussetzungen erfüllt werden (jeder Spaltenname ist eindeutig und wird nicht dynamisch berechnet; alle Spalten der Basistabellen, die keinen Standardwert besitzen, werden abgebildet, existierende Klauseln bei aktivierten Check Options werden erfüllt, ...). Kurz gesagt: Es gibt einfache, änderbare Views und komplexe, unveränderliche.

Verschiedene Datenbankengines, wie MySQL/MariaDB oder MSSQL haben eine Spalte IS_UPDATABLE in der INFORMATION_SCHEMA.VIEWS-Tabelle, den du erst prüfen kannst. Sollte ein View allerdings auf mehreren anderen Views basieren, ist dieser nach Änderungen eines der zugrundeliegenden Views nicht immer korrekt.

Im Zweifel solltest du also die Basistabellen direkt ansprechen.