Unterstützte Teilmengen von PostgreSQL-Befehlen in Aurora DSQL - Amazon Aurora DSQL

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Unterstützte Teilmengen von PostgreSQL-Befehlen in Aurora DSQL

Dieser PostgreSQL-Abschnitt enthält detaillierte Informationen zu unterstützten Ausdrücken, wobei der Schwerpunkt auf Befehlen mit umfangreichen Parametersätzen und Unterbefehlen liegt. CREATE TABLE in PostgreSQL bietet beispielsweise viele Klauseln und Parameter. In diesem Abschnitt werden alle PostgreSQL-Syntaxelemente beschrieben, die Aurora DSQL für diese Befehle unterstützt.

CREATE TABLE

CREATE TABLE definiert eine neue Tabelle.

CREATE TABLE [ IF NOT EXISTS ] table_name ( [ { column_name data_type [ column_constraint [ ... ] ] | table_constraint | LIKE source_table [ like_option ... ] } [, ... ] ] ) where column_constraint is: [ CONSTRAINT constraint_name ] { NOT NULL | NULL | CHECK ( expression )| DEFAULT default_expr | GENERATED ALWAYS AS ( generation_expr ) STORED | UNIQUE [ NULLS [ NOT ] DISTINCT ] index_parameters | PRIMARY KEY index_parameters | and table_constraint is: [ CONSTRAINT constraint_name ] { CHECK ( expression ) | UNIQUE [ NULLS [ NOT ] DISTINCT ] ( column_name [, ... ] ) index_parameters | PRIMARY KEY ( column_name [, ... ] ) index_parameters | and like_option is: { INCLUDING | EXCLUDING } { COMMENTS | CONSTRAINTS | DEFAULTS | GENERATED | IDENTITY | INDEXES | STATISTICS | ALL } index_parameters in UNIQUE, and PRIMARY KEY constraints are: [ INCLUDE ( column_name [, ... ] ) ]

ALTER TABLE

ALTER TABLE ändert die Definition einer Tabelle.

ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] action [, ... ] ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] RENAME [ COLUMN ] column_name TO new_column_name ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] RENAME CONSTRAINT constraint_name TO new_constraint_name ALTER TABLE [ IF EXISTS ] name RENAME TO new_name ALTER TABLE [ IF EXISTS ] name SET SCHEMA new_schema where action is one of: ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

CREATE VIEW

CREATE VIEW definiert eine neue persistente Ansicht. Aurora DSQL unterstützt keine temporären Ansichten; nur permanente Ansichten werden unterstützt.

Unterstützte Syntax

CREATE [ OR REPLACE ] [ RECURSIVE ] VIEW name [ ( column_name [, ...] ) ] [ WITH ( view_option_name [= view_option_value] [, ... ] ) ] AS query [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

Description

CREATE VIEW definiert eine Abfrageansicht. Die Ansicht wird nicht physisch materialisiert. Stattdessen wird die Abfrage jedes Mal ausgeführt, wenn die Ansicht in einer Abfrage referenziert wird.

CREATE or REPLACE VIEW ist ähnlich, wird aber ersetzt, wenn bereits eine Ansicht mit demselben Namen vorhanden ist. Die neue Abfrage muss dieselben Spalten generieren, die von der vorhandenen Ansichtsabfrage generiert wurden (d. h. dieselben Spaltennamen in derselben Reihenfolge und mit denselben Datentypen), kann jedoch zusätzliche Spalten am Ende der Liste hinzufügen. Die Berechnungen, die zu den Ausgabespalten führen, können unterschiedlich sein.

Wenn ein Schemaname angegeben ist (z. B. CREATE VIEW myschema.myview ...), wird die Ansicht im vorgegebenen Schema erstellt. Andernfalls wird die Ansicht im aktuellen Schema erstellt.

Der Name der Ansicht muss sich von den Namen aller anderen Beziehungen (Tabelle, Index, Ansicht) im selben Schema unterscheiden.

Parameter

CREATE VIEW unterstützt verschiedene Parameter, um das Verhalten von automatisch aktualisierbaren Ansichten zu steuern.

RECURSIVE

Erzeugt eine rekursive Ansicht. Die Syntax: CREATE RECURSIVE VIEW [ schema . ] view_name (column_names) AS SELECT ...; entspricht CREATE VIEW [ schema . ] view_name AS WITH RECURSIVE view_name (column_names) AS (SELECT ...) SELECT column_names FROM view_name;.

Für eine rekursive Ansicht muss eine Namensliste der Ansichtsspalte angegeben werden.

name

Der Name der zu erstellenden Ansicht, die optional schemaqualifiziert sein kann. Für eine rekursive Ansicht muss eine Namensliste der Ansichtsspalte angegeben werden.

column_name

Eine optionale Liste von Namen, die für die Spalten in der Ansicht verwendet werden sollen. Wenn keine Spaltennamen angegeben werden, werden die diese aus der Abfrage abgeleitet.

WITH ( view_option_name [= view_option_value] [, ... ] )

Diese Klausel gibt optionale Parameter für eine Ansicht an. Die folgenden Parameter werden unterstützt.

  • check_option (enum) – dieser Parameter kann entweder local oder cascaded sein und entspricht einer Angabe von WITH [ CASCADED | LOCAL ] CHECK OPTION.

  • security_barrier (boolean) – sollte verwendet werden, wenn die Ansicht Sicherheit auf Zeilenebene bieten soll. Aurora DSQL unterstützt derzeit keine Sicherheit auf Zeilenebene, aber diese Option erzwingt dennoch, dass die WHERE-Bedingungen der Ansicht (und alle Bedingungen mit Operatoren, die als LEAKPROOF markiert sind) zuerst ausgewertet werden.

  • security_invoker (boolean) – diese Option bewirkt, dass die zugrunde liegenden Basisbeziehungen mit den Rechten des Benutzers der Ansicht und nicht denen des Besitzers der Ansicht verglichen werden. Alle Einzelheiten finden Sie in den folgenden Hinweisen.

Alle oben genannten Optionen können in vorhandenen Ansichten mithilfe von ALTER VIEW geändert werden.

query

Ein SELECT- oder VALUES-Befehl, der die Spalten und Zeilen der Ansicht bereitstellt.

  • WITH [ CASCADED | LOCAL ] CHECK OPTION – diese Option steuert das Verhalten von automatisch aktualisierbaren Ansichten. Wenn diese Option angegeben ist, werden die INSERT- und UPDATE-Befehle in der Ansicht überprüft, um sicherzustellen, dass neue Zeilen die Bedingung erfüllen, die die Ansicht definiert (das heißt, die neuen Zeilen werden auf Sichtbarkeit in der Ansicht überprüft). Sind sie nicht sichtbar, dann wird die Aktualisierung abgelehnt. Wenn kein CHECK OPTION angegeben ist, dürfen die Befehle INSERT und UPDATE neue Zeilen für die Ansicht erstellen, die in der Ansicht nicht sichtbar sind. Die folgenden Prüfoptionen werden unterstützt.

  • LOCAL – neue Zeilen werden nur anhand der Bedingungen geprüft, die direkt in der Ansicht selbst definiert wurden. Alle Bedingungen, die in zugrunde liegenden Basisansichten definiert sind, werden nicht geprüft (es sei denn, sie spezifizieren auch die CHECK OPTION).

  • CASCADED – neue Zeilen werden anhand der Bedingungen der Ansicht und aller zugrunde liegenden Basisansichten geprüft. Wenn die CHECK OPTION angegeben ist und sowohl LOCAL als auch CASCADED nicht angegeben sind, wird von CASCADED ausgegangen.

Anmerkung

Die CHECK OPTION darf in RECURSIVE-Ansichten nicht verwendet werden. Die CHECK OPTION wird ausschließlich für Ansichten unterstützt, die automatisch aktualisierbar sind.

Hinweise

Verwenden Sie die DROP VIEW-Anweisung, um Ansichten zu löschen.

Die Namen und Datentypen der Ansichtsspalten sollten sorgfältig überlegt werden. Zum Beispiel ist die Anweisung CREATE VIEW vista AS SELECT 'Hello World'; nicht zu empfehlen, da der Spaltenname standardmäßig auf ?column?; gesetzt wird. Außerdem wird der Datentyp der Spalte automatisch auf text festgelegt, was vielleicht nicht in Ihrem Sinne wäre.

Ein besserer Ansatz wäre, den Spaltennamen und den Datentyp explizit anzugeben, zum Beispiel: CREATE VIEW vista AS SELECT text 'Hello World' AS hello;.

Standardmäßig wird der Zugriff auf die zugrunde liegenden Basistabellen, die in der Ansicht referenziert werden, durch die Berechtigungen des Ansichtenbesitzers bestimmt. In einigen Fällen kann auf diese Weise ein sicherer, jedoch eingeschränkter Zugriff auf die zugrunde liegenden Tabellen ermöglicht werden. Allerdings sind nicht alle Ansichten manipulationssicher.

  • Wenn für die Ansicht die security_invoker-Eigenschaft auf true gesetzt ist, wird der Zugriff auf die zugrunde liegenden Basisbeziehungen durch die Berechtigungen des ausführenden Benutzers bestimmt, und nicht durch den Besitzer der Ansicht. Daher muss ein Benutzer einer Security-Invoker-Ansicht über die entsprechenden Berechtigungen sowohl für die Ansicht als auch für die zugrunde liegenden Basistabellen verfügen.

  • Wenn es sich bei einer der zugrunde liegenden Basisbeziehungen um eine Security-Invoker-Ansicht handelt, wird sie so behandelt, als ob direkt von der ursprünglichen Abfrage aus auf sie zugegriffen worden wäre. Daher überprüft eine Security-Invoker-Ansicht ihre zugrunde liegenden Basistabellen stets anhand der Berechtigungen des aktuellen Benutzers, auch wenn sie von einer Ansicht ohne die security_invoker-Eigenschaft aufgerufen wird.

  • In der Ansicht aufgerufene Funktionen werden genauso behandelt, als ob sie direkt von der Abfrage aus aufgerufen worden wären, die die Ansicht verwendet. Daher muss der Benutzer einer Ansicht berechtigt sein, alle von der Ansicht verwendeten Funktionen aufzurufen. Funktionen in der Ansicht werden mit den Rechten des ausführenden Benutzers oder des Funktionsbesitzers der Ansicht ausgeführt, je nachdem, ob die Funktionen als SECURITY INVOKER oder SECURITY DEFINER definiert sind. Wenn Sie beispielsweise CURRENT_USER direkt in einer Ansicht aufrufen, wird immer der aufrufende Benutzer zurückgegeben, nicht der Ansichtenbesitzer. Dies wird nicht durch die Einstellung security_invoker der Ansicht beeinflusst, sodass eine Ansicht mit security_invoker = false nicht einer SECURITY DEFINER-Funktion entspricht.

  • Der Benutzer, der eine View erstellt oder ersetzt, muss über USAGE-Berechtigungen für alle Schemas verfügen, die in der Ansichtenabfrage referenziert werden, um die darin enthaltenen Objekte auflösen zu können. Wichtig: diese Suche erfolgt nur zum Zeitpunkt der Erstellung oder Ersetzung der Ansicht. Daher benötigt ein Benutzer, der die Ansicht verwendet, lediglich die USAGE-Berechtigung für das Schema, das die Ansicht selbst enthält, und nicht für die Schemas, die in der Ansichtenabfrage referenziert werden, auch nicht bei einer Security-Invoker-Ansicht.

  • Wenn CREATE OR REPLACE VIEW für eine bestehende Ansicht verwendet wird, werden nur die definierende SELECT-Regel, etwaige WITH ( ... )-Parameter sowie deren CHECK OPTION geändert. Andere Ansichteneigenschaften, einschließlich Besitzrechte, Berechtigungen und non-SELECT-Regeln bleiben unverändert. Um eine Ansicht zu ersetzen, müssen Sie der Ansichtenbesitzer sein (das schließt auch eine Mitgliedschaft in der besitzenden Rolle ein).

Aktualisierbare Ansichten

Einfache Ansichten sind automatisch aktualisierbar: das System erlaugt die Verwendung von INSERT-, UPDATE- und DELETE-Anweisungen auf der Ansicht genau wie bei einer normalen Tabelle. Eine Ansicht ist automatisch aktualisierbar, wenn sie alle der folgenden Bedingungen erfüllt:

  • Die Ansicht muss genau einen Eintrag in ihrer FROM-Liste enthalten, bei dem es sich um eine Tabelle oder eine andere aktualisierbare Ansicht handeln muss.

  • Die Ansichtendefinition darf auf der obersten Ebene keine WITH-,DISTINCT-, GROUP BY-, HAVING-, LIMIT- oder OFFSET-Klauseln enthalten.

  • Die Ansichtendefinition darf auf oberster Ebene keine Mengenoperationen wie UNION, INTERSECT oder EXCEPT enthalten.

  • Die Auswahlliste der Ansicht darf keine Aggregate, Fensterfunktionen oder Funktionen zur Rückgabe von Mengen enthalten.

Eine automatisch aktualisierbare Ansicht kann eine Mischung aus aktualisierbaren und nicht aktualisierbaren Spalten enthalten. Eine Spalte ist aktualisierbar, wenn es sich um einen einfachen Verweis auf eine aktualisierbare Spalte der zugrunde liegenden Basisbeziehung handelt. Andernfalls ist die Spalte schreibgeschützt, und es tritt ein Fehler auf, wenn eine INSERT- oder UPDATE-Anweisung versucht, ihr einen Wert zuzuweisen.

Bei automatisch aktualisierbaren Ansichten konvertiert das System alle INSERT-,UPDATE- oder DELETE-Anweisung in der Ansicht in die entsprechende Anweisung in der zugrunde liegenden Basisbeziehung. INSERT-Anweisungen mit einer ON CONFLICT UPDATE-Klausel werden vollständig unterstützt.

Wenn eine automatisch aktualisierbare Ansicht eine WHERE-Bedingung enthält, schränkt die Bedingung ein, welche Zeilen der Basisbeziehung in der Ansicht von UPDATE- und DELETE-Anweisungen in der Ansicht veränddert werden können. Ein UPDATE kann eine Zeile so verändern, dass sie die WHERE-Bedingung der Ansicht nicht mehr erfüllt, wodurch sie nicht mehr über die Ansicht angezeigt wird. Ebenso kann ein INSERT-Befehl eine Zeile in der Basistabelle einfügen, die die WHERE-Bedingung nicht erfüllt, wodurch sie ebenfalls unsichtbar für die View bleibt. ON CONFLICT UPDATE kann eine vorhandene Zeile ähnlich beeinflussen, die nicht in der Ansicht sichtbar ist.

Sie können die CHECK OPTION verwenden, um zu verhindern, dass INSERT- und UPDATE -Befehle Zeilen erzeugen, die über die Ansicht nicht sichtbar sind.

Wenn eine automatisch aktualisierbare Ansicht mit der Eigenschaft security_barrier versehen ist, werden alle WHERE-Bedingungen der Ansicht (sowie Bedingungen mit als LEAKPROOF markierten Operatoren) immer vor den Bedingungen ausgewertet, die ein Benutzer der Ansicht hinzugefügt hat. Beachten Sie, dass auch wenn eine Zeile letztlich nicht zurückgegeben wird, weil sie die WHERE-Benutzerbedingungen nicht erfüllt, kann sie dennoch gesperrt werden. Mit EXPLAIN können Sie analysieren, welche Bedingungen auf Beziehungsebene angewendet werden (und daher keine Zeilen sperren) und welche nicht.

Eine komplexere Ansicht, die nicht alle Voraussetzungen für automatische Aktualisierbarkeit erfüllt, ist standardmäßig schreibgeschützt – das heißt, das System erlaubt keine INSERT-, UPDATE- oder DELETE-Operationen auf dieser Ansicht.

Anmerkung

Der Benutzer, der ein INSERT, UPDATE oder DELETE auf einer Ansicht ausführt, muss die entsprechenden Berechtigungen für diese Operationen auf der Ansicht selbst besitzen Standardmäßig muss der Besitzer der Ansicht über die notwendigen Rechte auf die zugrunde liegenden Basistabellen verfügen. Der Benutzer, der die Ansicht verwendet, benötigt keine direkten Berechtigungen für diese Basistabellen. Wenn die Ansicht jedoch mit security_invoker = true definiert ist, muss der Benutzer, der die Aktualisierung ausführt, und nicht der Ansichtenbesitzer die entsprechenden Rechte auf die zugrunde liegenden Basistabellen besitzen.

Beispiele

Erstellen einer Ansicht mit allen Comedy-Filmen

CREATE VIEW comedies AS SELECT * FROM films WHERE kind = 'Comedy';

Dies erstellt eine Ansicht, die nur die Spalten der Tabelle film enthält, die zum Zeitpunkt der Ansichtenerstellung vorhanden sind. Obwohl * in der Ansichtenerstellung verwendet wurde, werden später zur Tabelle hinzugefügte Spalten nicht automatisch Teil der Ansicht.

Erstellen einer Ansicht mit LOCAL CHECK OPTION

CREATE VIEW pg_comedies AS SELECT * FROM comedies WHERE classification = 'PG' WITH CASCADED CHECK OPTION;

Dies erstellt eine Ansicht, die sowohl kind als auch classification für neue Zeilen überprüft.

Erstellen einer Ansicht mit einer Mischung aus aktualisierbaren und nicht aktualisierbaren Spalten

CREATE VIEW comedies AS SELECT f.*, country_code_to_name(f.country_code) AS country, (SELECT avg(r.rating) FROM user_ratings r WHERE r.film_id = f.id) AS avg_rating FROM films f WHERE f.kind = 'Comedy';

Diese Ansicht unterstützt INSERT, UPDATE und DELETE. Alle Spalten aus der Filmtabelle können aktualisiert werden, wohingegen die berechneten Spalten country und avg_rating schreibgeschützt sind.

CREATE RECURSIVE VIEW public.nums_1_100 (n) AS VALUES (1) UNION ALL SELECT n+1 FROM nums_1_100 WHERE n < 100;
Anmerkung

Obwohl der Name der rekursiven View bei diesem CREATE schemaqualifiziert ist, bleibt die interne Selbstreferenz nicht schemaqualifiziert. Dies liegt daran, dass der implizit erzeugte Name des allgemeinen Tabellenausdrucks (CTE) nicht mit einem Schema qualifiziert werden kann.

Kompatibilität

CREATE OR REPLACE VIEW ist eine PostgreSQL-Spracherweiterung. Die WITH ( ... )-Klausel ist ebenfalls eine Erweiterung, wie auch die Ansichten Sicherheitsbarriere und Sicherheitsaufrufer. Aurora DSQL unterstützt diese Spracherweiterungen.

ALTER VIEW

Die ALTER VIEW-Anweisung ermöglicht das Ändern verschiedener Eigenschaften einer vorhandenen Ansicht, und Aurora DSQL unterstützt die gesamte PostgreSQL-Syntax für diesen Befehl.

Unterstützte Syntax

ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name DROP DEFAULT ALTER VIEW [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER VIEW [ IF EXISTS ] name RENAME [ COLUMN ] column_name TO new_column_name ALTER VIEW [ IF EXISTS ] name RENAME TO new_name ALTER VIEW [ IF EXISTS ] name SET SCHEMA new_schema ALTER VIEW [ IF EXISTS ] name SET ( view_option_name [= view_option_value] [, ... ] ) ALTER VIEW [ IF EXISTS ] name RESET ( view_option_name [, ... ] )

Description

ALTER VIEW ändert verschiedene Hilfseigenschaften einer Ansicht. (Wenn Sie die definierende Abfrage der Ansicht ändern möchten, verwenden Sie CREATE OR REPLACE VIEW.) Sie müssen der Ansichtenbesitzer sein, um ALTER VIEW verwenden zu können. Um das Schema einer Ansicht zu ändern, müssen Sie auch über CREATE-Berechtigungen für das neue Schema verfügen. Um den Besitzer zu wechseln, müssen Sie berechtigt sein, SET ROLE auf die neue Besitzerrolle zu setzen, und diese Rolle muss über CREATE-Berechtigungen für das Schema der Ansicht verfügen. Diese Einschränkungen stellen sicher, dass das Ändern des Besitzers keine weitergehenden Rechte verleiht, als Sie ohnehin hätten, wenn Sie die Ansicht löschen und neu erstellen.

Parameter

ALTER VIEW-Parameter

name

Der Name (optional schemaqualifiziert) einer vorhandenen Ansicht.

column_name

Neuer Name für eine vorhandene Spalte.

IF EXISTS

Es wird kein Fehler zurückgegeben falls die Ansicht nicht vorhanden ist. In diesem Fall wird eine Mitteilung ausgegeben.

SET/DROP DEFAULT

Diese Formulare legen den Standardwert für eine Spalte fest oder entfernen ihn. Der Standardwert für eine Ansichtsspalte wird durch einen beliebigen INSERT- oder UPDATE-Befehl ersetzt, bei dem das Ziel die Ansicht ist. Der Standardwert für die Ansicht hat Vorrang vor allen Standardwerten aus zugrunde liegenden Beziehungen.

new_owner

Der Benutzername des neuen Ansichtenbesitzers.

new_name

Der neue Name der Ansicht.

new_schema

Das neue Schema der Ansicht.

SET ( view_option_name [= view_option_value] [, ... ] )
RESET ( view_option_name [, ... ] )

Legt eine Ansichtsoption fest oder setzt sie zurück. Im Folgenden sehen Sie unterstützte Optionen:

  • check_option (enum) – ändert die Checkoption der Ansicht. Der Wert muss local oder cascaded sein.

  • security_barrier (boolean) – ändert die Sicherheitsbarriereneigenschaft der Ansicht. Der Wert muss ein boolescher Wert sein, z. B true oder false.

  • security_invoker (boolean) – ändert die Sicherheitsbarriereneigenschaft der Ansicht. Der Wert muss ein boolescher Wert sein, z. B true oder false.

Hinweise

Aus historischen Gründen in PostgreSQL kann ALTER TABLE auch mit Ansichten verwendet werden. Allerdings sind nur bestimmte Varianten von ALTER TABLE bei Ansichten zulässig, nämlich solche, die funktional gleichwertig zu den zuvor gezeigten Varianten sind.

Beispiele

Umbenennen der Ansicht foo in bar

ALTER VIEW foo RENAME TO bar;

Zuordnen eines Standardspaltenwerts zu einer aktualisierbaren Ansicht

CREATE TABLE base_table (id int, ts timestamptz); CREATE VIEW a_view AS SELECT * FROM base_table; ALTER VIEW a_view ALTER COLUMN ts SET DEFAULT now(); INSERT INTO base_table(id) VALUES(1); -- ts will receive a NULL INSERT INTO a_view(id) VALUES(2); -- ts will receive the current time
Kompatibilität

ALTER VIEW ist eine PostgreSQL-Erweiterung des SQL-Standards, den Aurora DSQL unterstützt.

DROP VIEW

Die DROP VIEW-Anweisung entfernt eine vorhandene Ansicht. Aurora DSQL unterstützt die vollständige PostgreSQL-Syntax für diesen Befehl.

Unterstützte Syntax

DROP VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

Description

DROP VIEW löscht eine vorhandene Ansicht. Sie müssen der Ansichtenbesitzer sein, um diesen Befehl ausführen zu können.

Parameter

IF EXISTS

Geben keine Fehler aus, wenn die Ansicht nicht vorhanden ist. In diesem Fall wird eine Mitteilung ausgegeben.

name

Der Name (optional schemaqualifiziert) der zu entfernenden Ansicht.

CASCADE

Objekte, die von einer Ansicht abhängig sind (z. B. von anderen Ansichten), können automatisch gelöscht werden, einschließlich aller weiteren Objekte, die von diesen abhängigen Objekten abhängig sind.

RESTRICT

Verweigert die Löschung einer Ansicht, wenn andere Objekte von ihr abhängig sind. Dies ist die Standardeinstellung.

Beispiele

DROP VIEW kinds;

Kompatibilität

Dieser Befehl entspricht dem SQL-Standard, mit zwei Ausnahmen: erstens ist nur das Löschen einer einzelnen Ansicht pro Befehl erlaubt, und zweitens wenn die Option IF EXISTS eine PostgreSQL-Erweiterung ist, die auch von Aurora DSQL unterstützt wird.