View a markdown version of this page

ALTER TABLE - 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 TABLE

ALTER TABLE modifica la definizione di una tabella.

Sintassi supportata

ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] action [, ... ] ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] RENAME [ COLUMN ] column_name TO new_column_name ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] RENAME CONSTRAINT constraint_name TO new_constraint_name ALTER TABLE [ IF EXISTS ] name RENAME TO new_name ALTER TABLE [ IF EXISTS ] name SET SCHEMA new_schema where action is one of: ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type [ STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ] ALTER [ COLUMN ] column_name SET DEFAULT expression ALTER [ COLUMN ] column_name DROP DEFAULT ALTER [ COLUMN ] column_name DROP NOT NULL ALTER [ COLUMN ] column_name DROP EXPRESSION [ IF EXISTS ] ALTER [ COLUMN ] column_name ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ] ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...] ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ] ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ADD table_constraint_using_index DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ] OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } and table_constraint_using_index is: [ CONSTRAINT constraint_name ] UNIQUE USING INDEX index_name

Description

ADD [ COLUMN ] [ IF NOT EXISTS ]

Questo modulo aggiunge una nuova colonna alla tabella, utilizzando la stessa sintassi di. CREATE TABLE Se IF NOT EXISTS viene specificato ed esiste già una colonna con questo nome, non viene generato alcun errore.

SET/DROP DEFAULT

Questi moduli impostano o rimuovono il valore predefinito per una colonna (dove la rimozione equivale a impostare il valore predefinito su NULL). Il nuovo valore predefinito verrà applicato solo nei UPDATE comandi INSERT o successivi; non modifica le righe già presenti nella tabella.

DROP NOT NULL

Questo modulo modifica una colonna per consentire valori nulli.

DROP EXPRESSION [ IF EXISTS ]

Questo modulo trasforma una colonna generata memorizzata in una normale colonna di base. I dati esistenti nelle colonne vengono mantenuti, ma le modifiche future non applicheranno più l'espressione di generazione. Se DROP EXPRESSION IF EXISTS viene specificato e la colonna non è una colonna generata, non viene generato alcun errore. In questo caso viene invece emesso un avviso.

ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY
SET GENERATED { ALWAYS | BY DEFAULT }
DROP IDENTITY [ IF EXISTS ]

Questi moduli modificano se una colonna è una colonna di identità o modificano l'attributo di generazione di una colonna di identità esistente. Per informazioni dettagliate, vedi CREATE TABLE. Ad esempioSET DEFAULT, questi moduli influiscono solo sul comportamento dei UPDATE comandi INSERT e successivi e non modificano le righe già presenti nella tabella.

sequence_optionÈ un'opzione supportata da ALTER SEQUENCEINCREMENT BY. Questi moduli alterano la sequenza che sta alla base di una colonna di identità esistente.

Nota

Amazon Aurora DSQL richiede un valore esplicito CACHE durante l'utilizzo. ADD GENERATED AS IDENTITY Inoltre, le colonne di identità sono supportate solo nelle colonne. bigint

Quando si utilizzano le colonne di identità, è necessario considerare attentamente il valore della cache. Per ulteriori informazioni, consulta il callout importante nella CREATE SEQUENCE pagina.

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

SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT }

Questo modulo imposta la modalità di archiviazione per una colonna. Per i dettagli sulle modalità di archiviazione disponibili, consulta la Modalità di archiviazione CREATE TABLE pagina.

ADD table_constraint_using_index

Questo modulo aggiunge un nuovo UNIQUE vincolo a una tabella basata su un indice univoco esistente. Tutte le colonne dell'indice verranno incluse nel vincolo.

L'indice deve trovarsi in VALID uno stato; l'aggiunta di un vincolo univoco utilizzando un indice mentre l'indice è attualmente in fase di creazione non è supportata.

Se viene fornito un nome di vincolo, l'indice verrà rinominato in modo che corrisponda al nome del vincolo. In caso contrario, il vincolo verrà denominato con lo stesso nome dell'indice.

Dopo l'esecuzione di questo comando, l'indice viene «posseduto» dal vincolo, come se l'indice fosse stato creato da un comando normale. CREATE UNIQUE INDEX ASYNC In particolare, se si elimina il vincolo, anche l'indice scomparirà.

DROP CONSTRAINT [ IF EXISTS ]

Questo modulo elimina il vincolo specificato su una tabella, insieme a qualsiasi indice sottostante il vincolo. Se IF EXISTS è specificato e il vincolo non esiste, non viene generato alcun errore. In questo caso viene invece emesso un avviso.

Importante

Attualmente, l'aggiunta di un nuovo vincolo è supportata dall'CREATE TABLEespressione. ALTER TABLE ADD CONSTRAINT(supporto per il mirroring perDROP CONSTRAINT) non è ancora disponibile. Se hai domande su questa funzionalità imminente, contatta AWS Support o contattaci direttamente tramite DSQL Public Discord.

OWNER TO

Questo modulo modifica il proprietario della tabella con l'utente specificato.

RENAME

I RENAME moduli modificano il nome di una tabella, il nome di una singola colonna in una tabella o il nome di un vincolo della tabella. Quando si rinomina un vincolo con un indice sottostante, viene rinominato anche l'indice. Non vi è alcun effetto sui dati memorizzati.

SET SCHEMA

Questo modulo sposta la tabella in un altro schema. Vengono spostati anche gli indici, i vincoli e le sequenze associati appartenenti alle colonne della tabella.

Parameters

IF EXISTS

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

name

Il nome (facoltativamente qualificato dallo schema) di una tabella esistente da modificare. Se ONLY viene specificato prima del nome della tabella, viene modificata solo quella tabella. Se non ONLY è specificato, la tabella e tutte le relative tabelle discendenti (se presenti) vengono modificate. Facoltativamente, * può essere specificato dopo il nome della tabella per indicare esplicitamente che le tabelle discendenti sono incluse.

column_name

Nome di una colonna nuova o esistente.

new_column_name

Nuovo nome per una colonna esistente.

new_name

Nuovo nome per la tabella.

data_type

Tipo di dati della nuova colonna.

constraint_name

Nome di un vincolo nuovo o esistente.

CASCADE

Elimina automaticamente gli oggetti che dipendono dal vincolo eliminato (ad esempio, le viste che fanno riferimento alla colonna) e, a loro volta, tutti gli oggetti che dipendono da tali oggetti.

RESTRICT

Rifiuta di eliminare il vincolo se ci sono oggetti dipendenti. Questo è il comportamento che segue di default.

new_owner

Il nome utente del nuovo proprietario della tabella.

new_schema

Il nome dello schema in cui verrà spostata la tabella.