Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
ALTERTABLEADDund DROP COLUMN Beispiele
Die folgenden Beispiele zeigen, wie ALTER TABLE Sie eine einfache Tabellenspalte hinzufügen und dann löschen und wie Sie eine Spalte mit einem abhängigen Objekt löschen.
ADDdann DROP eine einfache Spalte
Das folgende Beispiel fügt der USERS Tabelle eine eigenständige SCORE Spalte FEEDBACK _ hinzu. Diese Spalte enthält einfach eine Ganzzahl, und der Standardwert für diese Spalte ist NULL (kein Feedback-Score).
Fragen Sie zunächst die DEF Katalogtabelle TABLE PG_ _ ab, um das Schema der USERS Tabelle 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 SCORE Spalte FEEDBACK _ ausUSERS, um zu überprüfen, ob sie hinzugefügt wurde:
select feedback_score from users limit 5;
feedback_score ---------------- NULL NULL NULL NULL NULL
Löschen Sie die Spalte, um das Original wiederherzustellen: DDL
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 die SCORE Spalte FEEDBACK _ erneut zur USERS Tabelle hinzu:
alter table users add column feedback_score int default NULL;
Erstellen Sie als Nächstes eine Ansicht aus der USERS Tabelle mit dem Namen USERS _VIEW:
create view users_view as select * from users;
Versuchen Sie nun, die SCORE Spalte FEEDBACK _ aus der USERS Tabelle zu löschen. 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 SCORE Spalte FEEDBACK _ zu löschen, und geben Sie diesmal CASCADE an, dass alle abhängigen Objekte gelöscht werden sollen:
alter table users drop column feedback_score cascade;