FirebirdSQL logo
 INDEXTRIGGER 

Wer kann eine Ansicht erstellen?

Die CREATE VIEW-Anweisung kann ausgeführt werden durch:

Der Ersteller einer Ansicht wird ihr Eigentümer.

Um eine Ansicht zu erstellen, benötigt ein Nicht-Administrator-Benutzer außerdem mindestens 'SELECT'-Zugriff auf die zugrunde liegende(n) Tabelle(n) und/oder Ansicht(en) und das 'EXECUTE'-Privileg für alle beteiligten auswählbaren gespeicherten Prozeduren.

Um Einfügungen, Aktualisierungen und Löschungen über die Ansicht zu ermöglichen, muss der Ersteller/Eigentümer auch die entsprechenden INSERT, UPDATE und DELETE-Rechte für das/die zugrunde liegende(n) Objekt(e) besitzen.

Anderen Benutzern Berechtigungen für die Ansicht zu erteilen ist nur möglich, wenn der Ansichtsbesitzer diese Berechtigungen für die zugrunde liegenden Objekte hat WITH GRANT OPTION.Dies ist immer dann der Fall, wenn der View-Eigentümer auch der Eigentümer der zugrunde liegenden Objekte ist.

===Beispiele für das Erstellen von Ansichten

  1. Erstellen einer Ansicht, die die Spalten JOB_CODE und JOB_TITLE nur für die Jobs zurückgibt, bei denen MAX_SALARY weniger als 15.000 USD beträgt.

    CREATE VIEW ENTRY_LEVEL_JOBS AS
    SELECT JOB_CODE, JOB_TITLE
    FROM JOB
    WHERE MAX_SALARY < 15000;
  2. Erstellen einer Ansicht, die die Spalten JOB_CODE und JOB_TITLE nur für Jobs zurückgibt, bei denen MAX_SALARY weniger als 15.000 USD beträgt.Immer wenn ein neuer Datensatz eingefügt oder ein vorhandener Datensatz aktualisiert wird, wird die Bedingung MAX_SALARY < 15000 geprüft.Wenn die Bedingung nicht wahr ist, wird die Einfüge-/Aktualisierungsoperation abgelehnt.

    CREATE VIEW ENTRY_LEVEL_JOBS AS
    SELECT JOB_CODE, JOB_TITLE
    FROM JOB
    WHERE MAX_SALARY < 15000
    WITH CHECK OPTION;
  3. Erstellen einer Ansicht mit einer expliziten Spaltenliste.

    CREATE VIEW PRICE_WITH_MARKUP (
      CODE_PRICE,
      COST,
      COST_WITH_MARKUP
    ) AS
    SELECT
      CODE_PRICE,
      COST,
      COST * 1.1
    FROM PRICE;
  4. Erstellen einer View mit Hilfe von Aliasen für Felder in der SELECT-Anweisung (das gleiche Ergebnis wie in Beispiel 3).

    CREATE VIEW PRICE_WITH_MARKUP AS
    SELECT
      CODE_PRICE,
      COST,
      COST * 1.1 AS COST_WITH_MARKUP
    FROM PRICE;
  5. Erstellen einer schreibgeschützten Ansicht basierend auf zwei Tabellen und einer gespeicherten Prozedur.

    CREATE VIEW GOODS_PRICE AS
    SELECT
      goods.name AS goodsname,
      price.cost AS cost,
      b.quantity AS quantity
    FROM
      goods
      JOIN price ON goods.code_goods = price.code_goods
      LEFT JOIN sp_get_balance(goods.code_goods) b ON 1 = 1;

ALTER VIEW

Verwendet für

Ändern einer vorhandenen Ansicht

Verfügbar in

DSQL

Syntax
ALTER VIEW viewname [<full_column_list>]
    AS <select_statement>
    [WITH CHECK OPTION]

<full_column_list> ::= (colname [, colname ...])
Table 1. ALTER VIEW-Anweisungsparameter
Parameter Beschreibung

viewname

Name einer existierenden Ansicht

select_statement

SELECT-Anweisung

full_column_list

Die Liste der Spalten in der Ansicht

colname

Spaltennamen anzeigen.Doppelte Spaltennamen sind nicht zulässig.

Verwenden Sie die Anweisung ALTER VIEW, um die Definition einer bestehenden Ansicht zu ändern.Berechtigungen für Ansichten bleiben erhalten und Abhängigkeiten werden nicht beeinflusst.

Die Syntax der ALTER VIEW-Anweisung entspricht vollständig der von CREATE VIEW.

Caution

Seien Sie vorsichtig, wenn Sie die Anzahl der Spalten in einer Ansicht ändern.Vorhandener Anwendungscode und PSQL-Module, die auf die Ansicht zugreifen, können ungültig werden.Informationen zum Erkennen dieser Art von Problem in gespeicherten Prozeduren und Triggern finden Sie unter Das RDB$VALID_BLR-Feld im Anhang.

docnext count = 9

Wer kann eine Ansicht ändern?

Die ALTER VIEW-Anweisung kann ausgeführt werden durch:

  • Administratoren

  • Der Besitzer der Ansicht

  • Benutzer mit der Berechtigung ALTER ANY VIEW

Beispiel mit ALTER VIEW

Ändern der Ansicht PRICE_WITH_MARKUP
ALTER VIEW PRICE_WITH_MARKUP (
  CODE_PRICE,
  COST,
  COST_WITH_MARKUP
) AS
SELECT
  CODE_PRICE,
  COST,
  COST * 1.15
FROM PRICE;

CREATE OR ALTER VIEW

Verwendet für

Erstellen einer neuen Ansicht oder Ändern einer vorhandenen Ansicht.

Verfügbar in

DSQL

Syntax
CREATE OR ALTER VIEW viewname [<full_column_list>]
  AS <select_statement>
  [WITH CHECK OPTION]

<full_column_list> ::= (colname [, colname ...])
Table 1. CREATE OR ALTER VIEW-Anweisungsparameter
Parameter Beschreibung

viewname

Name einer Ansicht, die möglicherweise nicht vorhanden ist

select_statement

SELECT-Anweisung

full_column_list

Die Liste der Spalten in der Ansicht

colname

Spaltennamen anzeigen.Doppelte Spaltennamen sind nicht zulässig.

Verwenden Sie die Anweisung CREATE OR ALTER VIEW, um die Definition einer bestehenden Ansicht zu ändern oder sie zu erstellen, falls sie nicht existiert.Berechtigungen für eine vorhandene Ansicht bleiben erhalten und Abhängigkeiten werden nicht beeinflusst.

Die Syntax der CREATE OR ALTER VIEW-Anweisung entspricht vollständig der von CREATE VIEW.

Beispiel für CREATE OR ALTER VIEW

Erstellen der neuen Ansicht PRICE_WITH_MARKUP-Ansicht oder Ändern, wenn sie bereits vorhanden ist
CREATE OR ALTER VIEW PRICE_WITH_MARKUP (
  CODE_PRICE,
  COST,
  COST_WITH_MARKUP
) AS
SELECT
  CODE_PRICE,
  COST,
  COST * 1.15
FROM PRICE;

DROP VIEW

Verwendet für

Löschen einer Ansicht

Verfügbar in

DSQL

Syntax
DROP VIEW viewname
Table 1. DROP VIEW-Anweisungsparameter
Parameter Beschreibung

viewname

Name der Ansicht

Die DROP VIEW-Anweisung löscht (löscht) eine vorhandene Ansicht.Die Anweisung schlägt fehl, wenn die Ansicht Abhängigkeiten aufweist.

Wer kann eine Ansicht löschen?

Die DROP VIEW-Anweisung kann ausgeführt werden durch:

  • Administratoren

  • Der Besitzer der Ansicht

  • Benutzer mit dem Privileg DROP ANY VIEW

Beispiel

Löschen der Ansicht PRICE_WITH_MARKUP
DROP VIEW PRICE_WITH_MARKUP;

RECREATE VIEW

Verwendet für

Erstellen einer neuen Ansicht oder Neuerstellen einer vorhandenen Ansicht

Verfügbar in

DSQL

Syntax
RECREATE VIEW viewname [<full_column_list>]
  AS <select_statement>
  [WITH CHECK OPTION]

<full_column_list> ::= (colname [, colname ...])
Table 1. RECREATE VIEW-Anweisungsparameter
Parameter Beschreibung

viewname

Name der Ansicht (View).Die maximale Länge beträgt 63 Zeichen

select_statement

SELECT-Anweisung

full_column_list

Die Liste der Spalten in der Ansicht

colname

Spaltennamen anzeigen.Doppelte Spaltennamen sind nicht zulässig.

Erstellt eine Ansicht oder erstellt sie neu.Wenn bereits eine Ansicht mit diesem Namen vorhanden ist, versucht die Engine, sie zu löschen, bevor die neue Instanz erstellt wird.Wenn die vorhandene Ansicht nicht gelöscht werden kann, z. B. aufgrund von Abhängigkeiten oder unzureichenden Rechten, schlägt RECREATE VIEW mit einem Fehler fehl.

Beispiel für RECREATE VIEW

Neue Ansicht PRICE_WITH_MARKUP-Ansicht erstellen oder neu erstellen, falls bereits vorhanden
RECREATE VIEW PRICE_WITH_MARKUP (
  CODE_PRICE,
  COST,
  COST_WITH_MARKUP
) AS
SELECT
  CODE_PRICE,
  COST,
  COST * 1.15
FROM PRICE;