ALTER SEQUENCE - Amazon Aurora DSQL

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

ALTER SEQUENCE

ALTER SEQUENCE— modifie la définition d'un générateur de séquences.

Important

Lorsque vous utilisez des séquences, la valeur du cache doit être soigneusement prise en compte. Pour plus d'informations, consultez la légende Important sur la CREATE SEQUENCE page.

Pour obtenir des conseils sur la meilleure façon d'utiliser les séquences basées sur les modèles de charge de travail, voirUtilisation de séquences et de colonnes d'identité.

Syntaxe prise en charge

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 SEQUENCEmodifie les paramètres d'un générateur de séquences existant. Tous les paramètres qui ne sont pas spécifiquement définis dans la ALTER SEQUENCE commande conservent leurs paramètres antérieurs.

Vous devez être propriétaire de la séquence à utiliserALTER SEQUENCE. Pour modifier le schéma d'une séquence, vous devez également disposer de CREATE privilèges sur le nouveau schéma. Pour modifier le propriétaire, vous devez être en mesure d'SET ROLEaccéder au nouveau rôle propriétaire, et ce rôle doit disposer de CREATE privilèges sur le schéma de la séquence. (Ces restrictions font en sorte que le fait de modifier le propriétaire n'a aucun effet que vous ne pourriez pas faire en supprimant et en recréant la séquence. Cependant, un superutilisateur peut de toute façon modifier la propriété de n'importe quelle séquence.)

Parameters

name

Nom (éventuellement qualifié par schéma) d'une séquence à modifier.

IF EXISTS

Ne renvoie pas d'erreur si la séquence n'existe pas. Un avis est émis dans ce cas.

increment

La clause INCREMENT BY increment est facultative. Une valeur positive fera une séquence ascendante, une valeur négative une séquence descendante. Si elle n'est pas spécifiée, l'ancienne valeur d'incrément sera conservée.

minvalue / NO MINVALUE

La clause facultative MINVALUE minvalue détermine la valeur minimale qu'une séquence peut générer. Si elle NO MINVALUE est spécifiée, la valeur par défaut de 1 et la valeur minimale du type de données pour les séquences ascendantes et descendantes, respectivement, seront utilisées. Si aucune option n'est spécifiée, la valeur minimale actuelle sera maintenue.

maxvalue / NO MAXVALUE

La clause facultative MAXVALUE maxvalue détermine la valeur maximale de la séquence. Si NO MAXVALUE cette option est spécifiée, les valeurs par défaut de la valeur maximale du type de données et de -1 pour les séquences ascendantes et descendantes, respectivement, seront utilisées. Si aucune option n'est spécifiée, la valeur maximale actuelle sera maintenue.

CYCLE

Le mot CYCLE clé facultatif peut être utilisé pour permettre à la séquence de s'enrouler lorsque le maxvalue ou minvalue a été atteint par une séquence ascendante ou descendante respectivement. Si la limite est atteinte, le prochain nombre généré sera respectivement maxvalue le minvalue ou.

NO CYCLE

Si le mot NO CYCLE clé facultatif est spécifié, tout appel effectué nextval après que la séquence a atteint sa valeur maximale renverra une erreur. Si aucun CYCLE NO CYCLE des deux n'est spécifié, le comportement de l'ancien cycle sera conservé.

start

La clause facultative START WITH start modifie la valeur de départ enregistrée de la séquence. Cela n'a aucun effet sur la valeur de séquence actuelle ; cela définit simplement la valeur que ALTER SEQUENCE RESTART les futures commandes utiliseront.

restart

La clause facultative RESTART [ WITH restart ] modifie la valeur actuelle de la séquence. Cela revient à appeler la setval fonction avec is_called = false : la valeur spécifiée sera renvoyée lors du prochain appel denextval. Écrire RESTART sans restart valeur équivaut à fournir la valeur de départ enregistrée par CREATE SEQUENCE ou définie pour la dernière fois parALTER SEQUENCE START WITH.

Contrairement à un setval appel, une RESTART opération sur une séquence est transactionnelle et empêche les transactions simultanées d'obtenir des numéros à partir de la même séquence. Si ce n'est pas le mode de fonctionnement souhaité, setval il doit être utilisé.

cache

La clause CACHE cache permet de préallouer les numéros de séquence et de les stocker en mémoire pour un accès plus rapide. La valeur doit être soit 1, soit une valeur >= 65536. Si elle n'est pas spécifiée, l'ancienne valeur du cache sera conservée. Pour plus d'informations sur le comportement du cache, consultez les instructions ci-dessousCREATE SEQUENCE.

OWNED BY table_name.column_name / OWNED BY NONE

OWNED BYCette option permet d'associer la séquence à une colonne de table spécifique, de sorte que si cette colonne (ou le tableau entier) est supprimée, la séquence sera également automatiquement supprimée. Si elle est spécifiée, cette association remplace toute association précédemment spécifiée pour la séquence. La table spécifiée doit avoir le même propriétaire et être dans le même schéma que la séquence. La spécification OWNED BY NONE supprime toute association existante, rendant la séquence « autonome ».

new_owner

Le nom d'utilisateur du nouveau propriétaire de la séquence.

new_name

Le nouveau nom de la séquence.

new_schema

Le nouveau schéma de la séquence.

Remarques

ALTER SEQUENCEn'affectera pas immédiatement les nextval résultats dans les backends, autres que celui en cours, qui ont des valeurs de séquence préallouées (mises en cache). Ils utiliseront toutes les valeurs mises en cache avant de remarquer les paramètres de génération de séquence modifiés. Le backend actuel sera immédiatement affecté.

ALTER SEQUENCEn'affecte pas le currval statut de la séquence.

ALTER SEQUENCEpeut entraîner d'autres transactions pour OCC.

Pour des raisons historiques, il ALTER TABLE peut également être utilisé avec des ALTER TABLE séquences ; mais les seules variantes autorisées avec des séquences sont équivalentes aux formes présentées ci-dessus.

Exemples

Redémarrer une séquence appeléeserial, à 105 :

ALTER SEQUENCE serial RESTART WITH 105;

Compatibilité

ALTER SEQUENCEest conforme à la norme SQL, à l'exception des SET SCHEMA clausesAS,START WITH,OWNED BY,OWNER TO, etRENAME TO, qui sont des extensions PostgreSQL.