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 BYest 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.increment minvalue/NO MINVALUE-
La clause facultative
MINVALUEdétermine la valeur minimale qu'une séquence peut générer. Si elleminvalueNO MINVALUEest 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
MAXVALUEdétermine la valeur maximale de la séquence. SimaxvalueNO MAXVALUEcette 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
CYCLEclé facultatif peut être utilisé pour permettre à la séquence de s'enrouler lorsque lemaxvalueouminvaluea été atteint par une séquence ascendante ou descendante respectivement. Si la limite est atteinte, le prochain nombre généré sera respectivementmaxvalueleminvalueou. NO CYCLE-
Si le mot
NO CYCLEclé facultatif est spécifié, tout appel effectuénextvalaprès que la séquence a atteint sa valeur maximale renverra une erreur. Si aucunCYCLENO CYCLEdes deux n'est spécifié, le comportement de l'ancien cycle sera conservé. start-
La clause facultative
START WITHmodifie 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 questartALTER SEQUENCE RESTARTles futures commandes utiliseront. restart-
La clause facultative
RESTART [ WITHmodifie la valeur actuelle de la séquence. Cela revient à appeler larestart]setvalfonction avecis_called=false: la valeur spécifiée sera renvoyée lors du prochain appel denextval. ÉcrireRESTARTsansrestartvaleur équivaut à fournir la valeur de départ enregistrée parCREATE SEQUENCEou définie pour la dernière fois parALTER SEQUENCE START WITH.Contrairement à un
setvalappel, uneRESTARTopé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é,setvalil doit être utilisé. cache-
La clause
CACHEpermet 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.cache OWNED BY/table_name.column_nameOWNED 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écificationOWNED BY NONEsupprime 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.