ALTER DATABASE - Amazon Redshift

Amazon Redshift wird UDFs ab dem 1. November 2025 die Erstellung von neuem Python nicht mehr unterstützen. Wenn Sie Python verwenden möchten UDFs, erstellen Sie das UDFs vor diesem Datum liegende. Bestehendes Python UDFs wird weiterhin wie gewohnt funktionieren. Weitere Informationen finden Sie im Blog-Posting.

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.

ALTER DATABASE

Ändert die Attribute einer Datenbank.

Erforderliche Berechtigungen

Um ALTER DATABASE zu benutzen, ist eine der folgenden Berechtigungen erforderlich.

  • Superuser

  • Benutzer mit der Berechtigung ALTER DATABASE.

  • Datenbankbesitzer

Syntax

ALTER DATABASE database_name { RENAME TO new_name | OWNER TO new_owner | [ CONNECTION LIMIT { limit | UNLIMITED } ] [ COLLATE { CASE_SENSITIVE | CS | CASE_INSENSITIVE | CI } ] [ ISOLATION LEVEL { SNAPSHOT | SERIALIZABLE } ] | INTEGRATION { REFRESH { { ALL | INERROR } TABLES [ IN SCHEMA schema [, ...] ] | TABLE schema.table [, ...] } | SET [ QUERY_ALL_STATES [=] { TRUE | FALSE } ] [ ACCEPTINVCHARS [=] { TRUE | FALSE } ] [ REFRESH_INTERVAL <interval> ] [ TRUNCATECOLUMNS [=] { TRUE | FALSE } ] [ HISTORY_MODE [=] {TRUE | FALSE} [ FOR { {ALL} TABLES [IN SCHEMA schema [, ...] ] | TABLE schema.table [, ...] } ] ] } }

Parameters

database_name

Der Name der Datenbank, die geändert werden soll. In der Regel ändern Sie eine Datenbank, mit der Sie zurzeit nicht verbunden sind. In jedem Fall werden die Änderungen nur in folgenden Sitzungen wirksam. Sie können den Besitzer der aktuellen Datenbank ändern, sie jedoch nicht umbenennen:

alter database tickit rename to newtickit; ERROR: current database may not be renamed
RENAME TO

Benennt die angegebene Datenbank um. Weitere Informationen zu gültigen Namen finden Sie unter Namen und Kennungen. Sie können die Datenbanken dev, padb_harvest, template0 oder template1 oder sys:internal-Datenbanken nicht umbenennen. Nur der Datenbankbesitzer oder ein superuser können eine Datenbank umbenennen. Besitzer, die keine Superuser sind, benötigen ebenfalls das CREATEDB-Recht.

new_name

Neuer Datenbankname.

OWNER TO

Ändert den Besitzer der angegebenen Datenbank. Sie können den Besitzer der aktuellen Datenbank oder einer anderen Datenbank ändern. Nur ein Superuser kann den Besitzer ändern.

new_owner

Neuer Datenbankbesitzer. Der neue Besitzer muss ein vorhandener Datenbankbenutzer mit Schreibberechtigungen sein. Weitere Informationen zu Benutzerrechten finden Sie in GRANT.

CONNECTION LIMIT { Limit | UNLIMITED }

Redshift unterstützt das Schreiben von verschachteltem JSON-Code, wenn das Abfrageergebnis SUPER-Spalten enthält. Das Limit wird für Superuser nicht durchgesetzt. Mithilfe des Schlüsselworts UNLIMITED können Sie die maximale Zahl gleichzeitiger Verbindungen festlegen. Möglicherweise gilt auch ein Limit für die Zahl der Verbindungen für die einzelnen Benutzer. Weitere Informationen finden Sie unter CREATE USER. Der Standardwert ist UNLIMITED. Um die aktuellen Verbindungen anzuzeigen, führen Sie eine Abfrage für die Systemansicht STV_SESSIONS aus.

Anmerkung

Wenn sowohl für Benutzer- als auch für Datenbankverbindungen Limits gelten, muss ein ungenutzter Verbindungsplatz verfügbar sein, der sich innerhalb beider Grenzen befindet, wenn ein Benutzer versucht, eine Verbindung herzustellen.

COLLATE { CASE_SENSITIVE | CS | CASE_INSENSITIVE | CI }

Eine Klausel, die angibt, ob bei der Suche oder dem Vergleich von Zeichenfolgen zwischen Groß- und Kleinschreibung unterschieden wird oder nicht.

Sie können die Unterscheidung zwischen Groß- und Kleinschreibung in der aktuellen, Datenbank ändern, selbst wenn diese leer ist.

Sie müssen über ALTER-Berechtigung für die aktuelle Datenbank verfügen, um die Unterscheidung zwischen Groß-/Kleinschreibung zu ändern. Superuser oder Datenbankbesitzer mit der CREATE DATABASE-Berechtigung können ebenfalls die Unterscheidung zwischen Groß-/Kleinschreibung in der Datenbank ändern.

CASE_SENSITIVE und CS sind austauschbar und liefern dieselben Ergebnisse. Ebenso sind CASE_INSENSITIVE und CI austauschbar und führen zu denselben Ergebnissen.

ISOLATION LEVEL { SNAPSHOT | SERIALIZABLE }

Eine Klausel, die die verwendete Isolationsstufe bei Abfragen für eine Datenbank angibt. Weitere Informationen zu Isolationsstufen finden Sie unter Isolierungsstufen in Amazon Redshift.

  • SNAPSHOT-Isolation – bietet eine Isolationsstufe mit Schutz vor Aktualisierungs- und Löschkonflikten

  • SERIALIZABLE-Isolation (serialisierbare Isolation) – bietet volle Serialisierbarkeit für gleichzeitige Transaktionen.

Beachten Sie die folgenden Elemente, wenn Sie die Isolationsstufe einer Datenbank ändern:

  • Sie müssen über Superuser-Rechte oder über die Berechtigung CREATE DATABASE (Datenbank erstellen) für die aktuelle Datenbank verfügen, um die Isolationsstufe für die Datenbank zu ändern.

  • Sie können die Isolationsstufe der dev-Datenbank nicht ändern.

  • Sie können die Isolationsstufe innerhalb eines Transaktionsblocks nicht ändern.

  • Der Befehl zum Ändern der Isolationsstufe schlägt fehl, wenn andere Benutzer mit der Datenbank verbunden sind.

  • Mit dem Befehl zum Ändern der Isolationsstufe können die Isolationsstufen-Einstellungen der aktuellen Sitzung geändert werden.

INTEGRATION

Ändern einer Null-ETL-Integrationsdatenbank.

REFRESH {{ ALL | INERROR } TABLES [IN SCHEMA schema [, ...]] | TABLE schema.table [, ...]}

Eine Klausel, die angibt, ob Amazon Redshift alle Tabellen oder Tabellen mit Fehlern im angegebenen Schema oder der Tabelle aktualisiert. Die Aktualisierung löst aus, dass die Tabellen im angegebenen Schema oder der angegebenen Tabelle vollständig aus der Quelldatenbank repliziert werden.

Weitere Informationen finden Sie unter Null-ETL-Integrationen im Managementleitfaden zu Amazon Redshift. Weitere Informationen zu Integrationszuständen finden Sie unter SVV_INTEGRATION_TABLE_STATE und SVV_INTEGRATION.

QUERY_ALL_STATES [=] { TRUE | FALSE }

Die QUERY_ALL_STATES-Klausel legt fest, ob Null-ETL-Integrationstabellen in allen Status (Synced, Failed, ResyncRequired und ResyncInitiated) abgefragt werden können. Standardmäßig kann eine Null-ETL-Integrationstabelle nur im Status Synced abgefragt werden.

ACCEPTINVCHARS [=] { TRUE | FALSE }

Die ACCEPTINVCHARS-Klausel legt fest, ob Null-ETL-Integrationstabellen mit der Aufnahme fortfahren, wenn ungültige Zeichen für den VARCHAR-Datentyp erkannt werden. Wenn ungültige Zeichen gefunden werden, wird das ungültige Zeichen durch ein standardmäßiges ?-Zeichen ersetzt.

REFRESH_INTERVAL <interval>

Die REFRESH_INTERVAL-Klausel legt das ungefähre Zeitintervall in Sekunden für die Aktualisierung von Daten aus der Zero-ETL-Quelle in der Zieldatenbank fest. Das interval kann für Null-ETL-Integrationen mit dem Quelltyp Aurora MySQL, Aurora PostgreSQL oder RDS for MySQL auf 0–432 000 Sekunden (5 Tage) gesetzt werden. Für Null-ETL-Integrationen von Amazon DynamoDB kann das interval auf 900–432 000 Sekunden (15 Minuten – 5 Tage) festgelegt werden.

Weitere Informationen zum Erstellen von Datenbanken mit Null-ETL-Integrationen finden Sie unter Erstellen von Zieldatenbanken in Amazon Redshift im Managementleitfaden zu Amazon Redshift.

TRUNCATECOLUMNS [=] { TRUE | FALSE }

Die TRUNCATECOLUMNS-Klausel legt fest, ob Null-ETL-Integrationstabellen mit der Aufnahme fortfahren, wenn die Werte für die VARCHAR-Spalten- oder SUPER-Spaltenattribute den Grenzwert überschreiten. Wenn TRUE, werden die Werte gekürzt, sodass sie in die Spalte passen, und die Werte von JSON-Attributen, die den verfügbaren Platz überschreiten, werden gekürzt, damit sie in die SUPER-Spalte passen.

HISTORY_MODE [=] {TRUE | FALSE} [ FOR { {ALL} TABLES [IN SCHEMA schema [, ...]] | TABLE schema.table [, ...]} ]

Eine Klausel, die angibt, ob Amazon Redshift den Verlaufsmodus für alle Tabellen oder für Tabellen im angegebenen Schema festlegt, die an der Null-ETL-Integration teilnehmen. Diese Option gilt nur für Datenbanken, die für die Null-ETL-Integration erstellt wurden.

Die HISTORY_MODE-Klausel kann auf TRUE oder FALSE gesetzt werden. Der Standardwert ist FALSE. Das Ein- und Ausschalten des Verlaufsmodus gilt nur für Tabellen, die sich im Synced-Status befinden. Informationen zu HISTORY_MODE finden Sie unter Verlaufsmodus im Managementleitfaden zu Amazon Redshift.

Nutzungshinweise

ALTER DATABASE-Befehle gelten für folgende, nicht für aktuelle Sitzungen. Sie müssen die Verbindung mit der geänderten Datenbank erneut herstellen, um die Auswirkungen der Änderung anzuzeigen.

Beispiele

Im folgenden Beispiel wird die Datenbank mit dem Namen TICKIT_SANDBOX in TICKIT_TEST umbenannt:

alter database tickit_sandbox rename to tickit_test;

Im folgenden Beispiel wird der Besitzer der TICKIT-Datenbank (der aktuellen Datenbank) in DWUSER umbenannt:

alter database tickit owner to dwuser;

Im folgenden Beispiel wird die Unterscheidung zwischen Groß-/Kleinschreibung in der Datenbank sampledb geändert:

ALTER DATABASE sampledb COLLATE CASE_INSENSITIVE;

Im folgenden Beispiel wird eine Datenbank namens sampledb mit der Isolationsstufe SNAPSHOT geändert.

ALTER DATABASE sampledb ISOLATION LEVEL SNAPSHOT;

Im folgenden Beispiel werden die Tabellen schema1.sample_table1 und schema2.sample_table2 in der Datenbank sample_integration_db in Ihrer Null-ETL-Integration aktualisiert.

ALTER DATABASE sample_integration_db INTEGRATION REFRESH TABLE schema1.sample_table1, schema2.sample_table2;

Im folgenden Beispiel werden alle synchronisierten und fehlgeschlagenen Tabellen in Ihrer Null-ETL-Integration aktualisiert.

ALTER DATABASE sample_integration_db INTEGRATION REFRESH ALL tables;

Im folgenden Beispiel wird das Aktualisierungsintervall für Null-ETL-Integrationen auf 600 Sekunden festgelegt.

ALTER DATABASE sample_integration_db INTEGRATION SET REFRESH_INTERVAL 600;

Im folgenden Beispiel werden alle Tabellen aktualisiert, die sich im ErrorState im Schema sample_schema befinden.

ALTER DATABASE sample_integration_db INTEGRATION REFRESH INERROR TABLES in SCHEMA sample_schema;

Im folgenden Beispiel wird der Verlaufsmodus für die Tabelle myschema.table1 aktiviert.

ALTER DATABASE sample_integration_db INTEGRATION SET HISTORY_MODE = true FOR TABLE myschema.table1

Im folgenden Beispiel wird der Verlaufsmodus für alle Tabellen in myschema aktiviert.

ALTER DATABASE sample_integration_db INTEGRATION SET HISTORY_MODE = true for ALL TABLES IN SCHEMA myschema