ALTER SEQUENCE - 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.

ALTER SEQUENCE

ALTER SEQUENCE— die Definition eines Sequenzgenerators ändern.

Wichtig

Bei der Verwendung von Sequenzen sollte der Cache-Wert sorgfältig abgewogen werden. Weitere Informationen finden Sie im Callout „Wichtig“ auf der CREATE SEQUENCE Seite.

Hinweise zur optimalen Verwendung von Sequenzen, die auf Workload-Mustern basieren, finden Sie unterArbeiten mit Sequenzen und Identitätsspalten.

Unterstützte Syntax

ALTER SEQUENCE [ IF EXISTS ] name [ INCREMENT [ BY ] increment ] [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ] [ [ NO ] CYCLE ] [ START [ WITH ] start ] [ RESTART [ [ WITH ] restart ] ] [ CACHE cache ] [ OWNED BY { table_name.column_name | NONE } ] ALTER SEQUENCE [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER SEQUENCE [ IF EXISTS ] name RENAME TO new_name ALTER SEQUENCE [ IF EXISTS ] name SET SCHEMA new_schema where cache is 1 or cache >= 65536

Description

ALTER SEQUENCEändert die Parameter eines vorhandenen Sequenzgenerators. Alle Parameter, die nicht ausdrücklich im ALTER SEQUENCE Befehl festgelegt wurden, behalten ihre vorherigen Einstellungen bei.

Sie müssen die zu verwendende Sequenz besitzenALTER SEQUENCE. Um das Schema einer Sequenz zu ändern, müssen Sie auch über CREATE Berechtigungen für das neue Schema verfügen. Um den Besitzer zu ändern, müssen Sie in der Lage sein, SET ROLE auf die neue Eigentümerrolle zuzugreifen, und diese Rolle muss über CREATE Berechtigungen für das Schema der Sequenz verfügen. (Diese Einschränkungen legen fest, dass das Ändern des Besitzers nichts bewirkt, was Sie nicht tun könnten, indem Sie die Sequenz löschen und neu erstellen. Ein Superuser kann jedoch trotzdem den Besitz einer beliebigen Sequenz ändern.)

Parameters

name

Der Name (optional schemaqualifiziert) einer Sequenz, die geändert werden soll.

IF EXISTS

Geben Sie keinen Fehler aus, wenn die Sequenz nicht existiert. In diesem Fall wird eine Mitteilung ausgegeben.

increment

Die Klausel INCREMENT BY increment ist optional. Ein positiver Wert ergibt eine aufsteigende Reihenfolge, ein negativer Wert eine absteigende Sequenz. Falls nicht angegeben, wird der alte Inkrementwert beibehalten.

minvalue / NO MINVALUE

Die optionale Klausel MINVALUE minvalue bestimmt den Mindestwert, den eine Sequenz generieren kann. Wenn NO MINVALUE angegeben, werden die Standardwerte 1 und der Mindestwert des Datentyps für aufsteigende bzw. absteigende Sequenzen verwendet. Wenn keine der Optionen angegeben ist, wird der aktuelle Mindestwert beibehalten.

maxvalue / NO MAXVALUE

Die optionale Klausel MAXVALUE maxvalue bestimmt den Maximalwert für die Sequenz. Falls NO MAXVALUE angegeben, werden die Standardwerte des Maximalwerts des Datentyps und -1 für aufsteigende bzw. absteigende Sequenzen verwendet. Wenn keine der Optionen angegeben ist, wird der aktuelle Maximalwert beibehalten.

CYCLE

Das optionale CYCLE Schlüsselwort kann verwendet werden, um zu ermöglichen, dass die Sequenz umgebrochen wird, wenn das maxvalue oder minvalue durch eine aufsteigende bzw. absteigende Sequenz erreicht wurde. Wenn das Limit erreicht ist, wird als nächste Zahl das minvalue Oder maxvalue generiert.

NO CYCLE

Wenn das optionale NO CYCLE Schlüsselwort angegeben wird, geben alle Aufrufe von, nextval nachdem die Sequenz ihren Maximalwert erreicht hat, einen Fehler zurück. Wenn keines CYCLE oder beide angegeben NO CYCLE sind, wird das alte Zyklusverhalten beibehalten.

start

Die optionale Klausel START WITH start ändert den aufgezeichneten Startwert der Sequenz. Dies hat keine Auswirkung auf den aktuellen Sequenzwert; es legt lediglich den Wert fest, den future ALTER SEQUENCE RESTART Befehle verwenden werden.

restart

Die optionale Klausel RESTART [ WITH restart ] ändert den aktuellen Wert der Sequenz. Dies ist vergleichbar mit dem Aufrufen der setval Funktion mit is_called =false: Der angegebene Wert wird beim nächsten Aufruf von zurückgegebennextval. Das Schreiben RESTART ohne restart Wert entspricht der Angabe des Startwerts, der von aufgezeichnet CREATE SEQUENCE oder zuletzt von gesetzt wurdeALTER SEQUENCE START WITH.

Im Gegensatz zu einem setval Anruf ist eine RESTART Operation in einer Sequenz transaktionaler Natur und verhindert, dass gleichzeitige Transaktionen Zahlen aus derselben Sequenz abrufen. Wenn das nicht der gewünschte Betriebsmodus ist, setval sollte er verwendet werden.

cache

Die Klausel CACHE cache ermöglicht es, Sequenznummern vorab zuzuweisen und für einen schnelleren Zugriff im Speicher zu speichern. Der Wert muss entweder 1 oder ein Wert >= 65536 sein. Wenn nicht angegeben, wird der alte Cache-Wert beibehalten. Weitere Informationen zum Verhalten von Caches finden Sie in den Anleitungen unterCREATE SEQUENCE.

OWNED BY table_name.column_name / OWNED BY NONE

Die OWNED BY Option bewirkt, dass die Sequenz einer bestimmten Tabellenspalte zugeordnet wird. Wenn also diese Spalte (oder ihre gesamte Tabelle) gelöscht wird, wird auch die Sequenz automatisch gelöscht. Falls angegeben, ersetzt diese Zuordnung alle zuvor angegebenen Verknüpfungen für die Sequenz. Die angegebene Tabelle muss denselben Besitzer haben und sich im selben Schema wie die Sequenz befinden. Durch die Angabe OWNED BY NONE wird jede bestehende Zuordnung entfernt, wodurch die Sequenz „eigenständig“ wird.

new_owner

Der Benutzername des neuen Besitzers der Sequenz.

new_name

Der neue Name für die Sequenz.

new_schema

Das neue Schema für die Sequenz.

Hinweise

ALTER SEQUENCEwirkt sich nicht sofort auf nextval Ergebnisse in anderen Backends als dem aktuellen aus, denen Sequenzwerte vorab zugewiesen (zwischengespeichert) sind. Sie werden alle zwischengespeicherten Werte verbrauchen, bevor sie die geänderten Parameter für die Sequenzgenerierung bemerken. Das aktuelle Backend wird sofort betroffen sein.

ALTER SEQUENCEhat keinen Einfluss auf den currval Status der Sequenz.

ALTER SEQUENCEkann dazu führen, dass andere Transaktionen zu OCC führen.

ALTER TABLEKann aus historischen Gründen auch mit Sequenzen verwendet werden. Die einzigen VariantenALTER TABLE, die bei Sequenzen zulässig sind, entsprechen den oben gezeigten Formen.

Beispiele

Starten Sie eine Sequenz neuserial, die bei 105 aufgerufen wird:

ALTER SEQUENCE serial RESTART WITH 105;

Kompatibilität

ALTER SEQUENCEentspricht dem SQL-Standard, mit Ausnahme der SET SCHEMA Klauseln,AS,,START WITH, und OWNED BY OWNER TORENAME TO, bei denen es sich um PostgreSQL-Erweiterungen handelt.