Esempi di ALTER TABLE ADD e DROP COLUMN - Amazon Redshift

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à.

Esempi di ALTER TABLE ADD e DROP COLUMN

I seguenti esempi mostrano come usare ALTER TABLE per aggiungere e rimuovere una colonna di base e anche come eliminare una colonna con un oggetto dipendente.

ADD e DROP di una colonna di base

L'esempio seguente aggiunge una colonna autonoma FEEDBACK_SCORE alla tabella USERS. Questa colonna contiene semplicemente uninteger e il valore predefinito per questa colonna è NULL (nessun punteggio di feedback).

Per prima cosa, esegui una query sulla tabella di catalogo PG_TABLE_DEF per visualizzare lo schema della tabella USERS:

column | type | encoding | distkey | sortkey --------------+------------------------+----------+---------+-------- userid | integer | delta | true | 1 username | character(8) | lzo | false | 0 firstname | character varying(30) | text32k | false | 0 lastname | character varying(30) | text32k | false | 0 city | character varying(30) | text32k | false | 0 state | character(2) | bytedict | false | 0 email | character varying(100) | lzo | false | 0 phone | character(14) | lzo | false | 0 likesports | boolean | none | false | 0 liketheatre | boolean | none | false | 0 likeconcerts | boolean | none | false | 0 likejazz | boolean | none | false | 0 likeclassical | boolean | none | false | 0 likeopera | boolean | none | false | 0 likerock | boolean | none | false | 0 likevegas | boolean | none | false | 0 likebroadway | boolean | none | false | 0 likemusicals | boolean | none | false | 0

Ora aggiungi la colonna feedback_score:

alter table users add column feedback_score int default NULL;

Seleziona la colonna FEEDBACK_SCORE da USERS per verificare che sia stata aggiunta:

select feedback_score from users limit 5; feedback_score ---------------- NULL NULL NULL NULL NULL

Rimuovi la colonna per ripristinare la DDL originale:

alter table users drop column feedback_score;

Eliminazione di una colonna con un oggetto dipendente

Nell'esempio seguente viene rimossa una colonna che ha un oggetto dipendente. Di conseguenza, anche l'oggetto dipendente viene rimosso.

Per iniziare, aggiungi nuovamente la colonna FEEDBACK_SCORE alla tabella USERS:

alter table users add column feedback_score int default NULL;

Quindi, crea una vista dalla tabella USERS chiamata USERS_VIEW:

create view users_view as select * from users;

Ora prova a rimuovere la colonna FEEDBACK_SCORE dalla tabella USERS. Questa istruzione DROP utilizza il comportamento predefinito (RESTRICT):

alter table users drop column feedback_score;

Amazon Redshift visualizza un messaggio di errore indicante che la colonna non può essere rimossa perché un altro oggetto dipende da essa.

Prova a rimuovere nuovamente la colonna FEEDBACK_SCORE, questa volta specificando CASCADE per eliminare tutti gli oggetti dipendenti:

alter table users drop column feedback_score cascade;