Beispiele für ALTER TABLE ADD und DROP COLUMN - Amazon Redshift

Beispiele für ALTER TABLE ADD und DROP COLUMN

In den folgenden Beispielen wird gezeigt, wie ALTER TABLE verwendet wird, um eine einfache Tabellenspalte hinzuzufügen und dann zu entfernen und eine Spalte mit einem abhängigen Objekt zu entfernen.

Hinzufügen (ADD) und Entfernen (DROP) einer einfachen Spalte

Im folgenden Beispiel wird der Tabelle USERS die eigenständige Spalte FEEDBACK_SCORE hinzugefügt. Diese Spalte enthält einfach eine Ganzzahl und der Standardwert für diese Spalte ist NULL (kein Feedbackergebnis).

Führen Sie zunächst eine Abfrage für die Katalogtabelle PG_TABLE_DEF aus, um die Tabelle USERS anzuzeigen:

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

Fügen Sie nun die Spalte feedback_score hinzu:

alter table users add column feedback_score int default NULL;

Wählen Sie die Spalte FEEDBACK_SCORE aus USERS aus, um zu überprüfen, ob sie hinzugefügt wurde:

select feedback_score from users limit 5; feedback_score ---------------- (5 rows)

Entfernen Sie die Spalte, um die ursprüngliche DDL wiederherzustellen:

alter table users drop column feedback_score;

Entfernen einer Spalte mit einem abhängigen Objekt

In diesem Beispiel wird eine Spalte entfernt, die ein abhängiges Objekt enthält. Daher wird das abhängige Objekt ebenfalls entfernt.

Fügen Sie zunächst der Tabelle USERS erneut die Spalte FEEDBACK_SCORE hinzu:

alter table users add column feedback_score int default NULL;

Erstellen Sie als Nächstes eine Ansicht aus der Tabelle USERS mit dem Namen USERS_VIEW:

create view users_view as select * from users;

Versuchen Sie nun, die Spalte FEEDBACK_SCORE aus der Spalte USERS zu entfernen. Diese DROP-Anweisung verwendet das Standardverhalten (RESTRICT):

alter table users drop column feedback_score;

Amazon Redshift zeigt die Fehlermeldung an, dass die Spalte nicht entfernt werden kann, da ein anderes Objekt von ihr abhängig ist.

Versuchen Sie erneut, die Spalte FEEDBACK_SCORE zu entfernen. Geben Sie dieses Mal CASCADE an, um alle abhängigen Objekte zu entfernen:

alter table users drop column feedback_score cascade;