ALTER SEQUENCE - Amazon Aurora DSQL

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

ALTER SEQUENCE

ALTER SEQUENCE— modificare la definizione di un generatore di sequenze.

Importante

Quando si usano sequenze, il valore della cache deve essere considerato attentamente. Per ulteriori informazioni, consultate il callout importante nella CREATE SEQUENCE pagina.

Per indicazioni su come utilizzare al meglio le sequenze basate sui modelli di carico di lavoro, consulta. Utilizzo di sequenze e colonne di identità

Sintassi supportata

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 SEQUENCEmodifica i parametri di un generatore di sequenze esistente. Tutti i parametri non specificatamente impostati nel ALTER SEQUENCE comando mantengono le impostazioni precedenti.

È necessario possedere la sequenza da utilizzareALTER SEQUENCE. Per modificare lo schema di una sequenza, è necessario disporre anche dei CREATE privilegi sul nuovo schema. Per modificare il proprietario, dovete essere in grado di SET ROLE ricoprire il nuovo ruolo di proprietario e quel ruolo deve avere CREATE i privilegi sullo schema della sequenza. (Queste restrizioni impongono che la modifica del proprietario non comporti nulla che non si possa fare eliminando e ricreando la sequenza. Tuttavia, un superutente può comunque modificare la proprietà di qualsiasi sequenza.)

Parameters

name

Il nome (facoltativamente qualificato dallo schema) di una sequenza da modificare.

IF EXISTS

Non generare un errore se la sequenza non esiste. In questo caso viene emesso un avviso.

increment

La clausola INCREMENT BY increment è facoltativa. Un valore positivo creerà una sequenza crescente, uno negativo una sequenza decrescente. Se non specificato, verrà mantenuto il vecchio valore di incremento.

minvalue / NO MINVALUE

La clausola opzionale MINVALUE minvalue determina il valore minimo che una sequenza può generare. Se NO MINVALUE viene specificato, verranno utilizzati i valori predefiniti di 1 e il valore minimo del tipo di dati per le sequenze ascendenti e discendenti, rispettivamente. Se non viene specificata nessuna opzione, verrà mantenuto il valore minimo corrente.

maxvalue / NO MAXVALUE

La clausola opzionale MAXVALUE maxvalue determina il valore massimo per la sequenza. Se NO MAXVALUE viene specificato, verranno utilizzati i valori predefiniti del valore massimo del tipo di dati e -1 per le sequenze ascendenti e discendenti, rispettivamente. Se non viene specificata nessuna opzione, verrà mantenuto il valore massimo corrente.

CYCLE

La parola CYCLE chiave opzionale può essere utilizzata per consentire alla sequenza di avvolgersi quando la maxvalue o minvalue è stata raggiunta rispettivamente da una sequenza crescente o decrescente. Se viene raggiunto il limite, il numero successivo generato sarà rispettivamente il minvalue omaxvalue.

NO CYCLE

Se viene specificata la parola NO CYCLE chiave opzionale, tutte le chiamate effettuate nextval dopo che la sequenza ha raggiunto il valore massimo restituiranno un errore. Se non NO CYCLE viene specificato nessuno CYCLE dei due, verrà mantenuto il comportamento del vecchio ciclo.

start

La clausola opzionale START WITH start modifica il valore iniziale registrato della sequenza. Ciò non ha alcun effetto sul valore della sequenza corrente; imposta semplicemente il valore che verranno utilizzati ALTER SEQUENCE RESTART dai comandi futuri.

restart

La clausola opzionale RESTART [ WITH restart ] modifica il valore corrente della sequenza. È simile alla chiamata alla setval funzione con is_called =false: il valore specificato verrà restituito dalla successiva chiamata dinextval. Scrivere RESTART senza restart valore equivale a fornire il valore iniziale registrato da CREATE SEQUENCE o impostato per l'ultima volta daALTER SEQUENCE START WITH.

A differenza di una setval chiamata, un'RESTARToperazione su una sequenza è transazionale e impedisce alle transazioni simultanee di ottenere numeri dalla stessa sequenza. Se questa non è la modalità operativa desiderata, setval dovrebbe essere utilizzata.

cache

La clausola CACHE cache consente di preallocare e archiviare i numeri di sequenza in memoria per un accesso più rapido. Il valore deve essere 1 o un valore diverso >= 65536. Se non specificato, il vecchio valore della cache verrà mantenuto. Per ulteriori informazioni sul comportamento della cache, consulta la guida CREATE SEQUENCE riportata di seguito.

OWNED BY table_name.column_name / OWNED BY NONE

L'OWNED BYopzione fa sì che la sequenza venga associata a una colonna specifica della tabella, in modo che se quella colonna (o l'intera tabella) viene eliminata, anche la sequenza verrà eliminata automaticamente. Se specificata, questa associazione sostituisce qualsiasi associazione precedentemente specificata per la sequenza. La tabella specificata deve avere lo stesso proprietario e appartenere allo stesso schema della sequenza. La specificazione OWNED BY NONE rimuove qualsiasi associazione esistente, rendendo la sequenza «indipendente».

new_owner

Il nome utente del nuovo proprietario della sequenza.

new_name

Il nuovo nome per la sequenza.

new_schema

Il nuovo schema per la sequenza.

Note

ALTER SEQUENCEnon influirà immediatamente sui nextval risultati nei backend, diversi da quello corrente, che hanno valori di sequenza preallocati (memorizzati nella cache). Utilizzeranno tutti i valori memorizzati nella cache prima di notare i parametri di generazione della sequenza modificati. Il backend corrente verrà modificato immediatamente.

ALTER SEQUENCEnon influisce sullo currval stato della sequenza.

ALTER SEQUENCEpuò causare altre transazioni verso OCC.

Per ragioni storiche, ALTER TABLE può essere utilizzato anche con le sequenze; ma le uniche varianti consentite con ALTER TABLE le sequenze sono equivalenti ai moduli mostrati sopra.

Esempi

Riavvia una sequenza chiamataserial, a 105:

ALTER SEQUENCE serial RESTART WITH 105;

Compatibilità

ALTER SEQUENCEè conforme allo standard SQL, ad eccezione delle SET SCHEMA clausoleAS,START WITH, OWNED BYOWNER TO, eRENAME TO, che sono estensioni PostgreSQL.