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.
ALTERTABLEBeispiele
Die folgenden Beispiele veranschaulichen die grundlegende Verwendung des ALTER TABLE Befehls.
Umbenennen einer Tabelle oder Ansicht
Mit dem folgenden Befehl wird die USERS Tabelle in USERS _ BKUP umbenannt:
alter table users rename to users_bkup;
Sie können diese Art von Befehl auch verwenden, um eine Ansicht umzubenennen.
Ändern des Besitzers einer Tabelle oder Ansicht
Mit dem folgenden Befehl wird der VENUE Tabellenbesitzer zum BenutzerDWUSER:
alter table venue owner to dwuser;
Die folgenden Befehle erstellen eine Ansicht und ändern anschließend deren Besitzer:
create view vdate as select * from date; alter table vdate owner to vuser;
Umbenennen einer Spalte
Mit dem folgenden Befehl wird die VENUESEATS Spalte in der VENUE Tabelle umbenannt in: VENUESIZE
alter table venue rename column venueseats to venuesize;
Entfernen einer Tabelleneinschränkung
Um eine Tabelleneinschränkung zu entfernen, wie beispielsweise einen Primärschlüssel, einen Fremdschlüssel oder eine spezifische Einschränkung, suchen Sie zunächst den internen Namen der Einschränkung. Geben Sie dann den Namen der Einschränkung im ALTER TABLE Befehl an. Im folgenden Beispiel werden die Einschränkungen für die CATEGORY Tabelle gefunden und anschließend der Primärschlüssel mit dem Namen gelöschtcategory_pkey
.
select constraint_name, constraint_type from information_schema.table_constraints where constraint_schema ='public' and table_name = 'category';
constraint_name | constraint_type ----------------+---------------- category_pkey | PRIMARY KEY
alter table category drop constraint category_pkey;
Ändern Sie eine VARCHAR Spalte
Um Speicherplatz zu sparen, können Sie zunächst eine Tabelle mit VARCHAR Spalten definieren, deren Mindestgröße für Ihre aktuellen Datenanforderungen erforderlich ist. Später können Sie längere Zeichenfolgen unterstützen, indem Sie die Spaltengröße in der Tabelle ändern.
Im folgenden Beispiel wird die Größe der EVENTNAME Spalte auf VARCHAR (300) erhöht.
alter table event alter column eventname type varchar(300);
Ändern der Komprimierungskodierung für eine Spalte
Sie können die Komprimierungskodierung einer Spalte ändern. Nachstehend finden Sie eine Reihe von Beispielen, die diesen Ansatz veranschaulichen. Die Tabellendefinition für diese Beispielen lautet wie folgt.
create table t1(c0 int encode lzo, c1 bigint encode zstd, c2 varchar(16) encode lzo, c3 varchar(32) encode zstd);
Die folgende Anweisung ändert die Komprimierungskodierung für Spalte c0 von LZO Kodierung zu AZ64 Kodierung.
alter table t1 alter column c0 encode az64;
Die folgende Anweisung ändert die Komprimierungskodierung für Spalte c1 von der Z-Standardcodierung zur AZ64 Kodierung.
alter table t1 alter column c1 encode az64;
Die folgende Anweisung ändert die Komprimierungskodierung für Spalte c2 von der Kodierung zur LZO Byte-Dictionary-Kodierung.
alter table t1 alter column c2 encode bytedict;
Die folgende Anweisung ändert die Komprimierungskodierung für Spalte c3 von Zstandard-Kodierung in Runlength-Kodierung.
alter table t1 alter column c3 encode runlength;
Ändert eine Spalte DISTSTYLE KEY DISTKEY
Die folgenden Beispiele zeigen, wie das Ende DISTSTYLE DISTKEY einer Tabelle geändert wird.
Erstellen Sie eine Tabelle mit einem EVEN Verteilungsstil. Die INFO Ansicht SVV TABLE _ _ zeigt, dass das DISTSTYLE istEVEN.
create table inventory( inv_date_sk int4 not null , inv_item_sk int4 not null , inv_warehouse_sk int4 not null , inv_quantity_on_hand int4 ) diststyle even; Insert into inventory values(1,1,1,1); select "table", "diststyle" from svv_table_info;
table | diststyle -----------+---------------- inventory | EVEN
Ändern Sie die Tabelle DISTKEY ininv_warehouse_sk
. In der INFO Ansicht SVV TABLE _ _ wird die inv_warehouse_sk
Spalte als resultierenden Verteilungsschlüssel angezeigt.
alter table inventory alter diststyle key distkey inv_warehouse_sk; select "table", "diststyle" from svv_table_info;
table | diststyle -----------+----------------------- inventory | KEY(inv_warehouse_sk)
Ändern Sie die Tabelle DISTKEY ininv_item_sk
. In der INFO Ansicht SVV TABLE _ _ wird die inv_item_sk
Spalte als resultierenden Verteilungsschlüssel angezeigt.
alter table inventory alter distkey inv_item_sk; select "table", "diststyle" from svv_table_info;
table | diststyle -----------+----------------------- inventory | KEY(inv_item_sk)
Ändern Sie eine Tabelle in DISTSTYLE ALL
Die folgenden Beispiele zeigen, wie Sie eine Tabelle in ändern können DISTSTYLEALL.
Erstellen Sie eine Tabelle mit einem EVEN Verteilungsstil. Die INFO Ansicht SVV TABLE _ _ zeigt, dass das DISTSTYLE istEVEN.
create table inventory( inv_date_sk int4 not null , inv_item_sk int4 not null , inv_warehouse_sk int4 not null , inv_quantity_on_hand int4 ) diststyle even; Insert into inventory values(1,1,1,1); select "table", "diststyle" from svv_table_info;
table | diststyle -----------+---------------- inventory | EVEN
Ändern Sie die Tabelle DISTSTYLE inALL. Die INFO Ansicht SVV TABLE _ _ zeigt die ÄnderungDISTSYTLE.
alter table inventory alter diststyle all; select "table", "diststyle" from svv_table_info;
table | diststyle -----------+---------------- inventory | ALL
Ändern Sie eine Tabelle SORTKEY
Sie können festlegen, ob eine Tabelle einen zusammengesetzten Sortierschlüssel oder keinen Sortierschlüssel haben soll.
In der folgenden Tabellendefinition ist die Tabelle t1
mit einem überlappenden Sortierschlüssel definiert.
create table t1 (c0 int, c1 int) interleaved sortkey(c0, c1);
Der folgende Befehle ändert die Tabelle so, dass aus dem überlappenden Sortierschlüssel ein zusammengesetzter Sortierschlüssel wird.
alter table t1 alter sortkey(c0, c1);
Der folgende Befehl ändert die Tabelle so, dass der überlappende Sortierschlüssel entfernt wird.
alter table t1 alter sortkey none;
In der folgenden Tabellendefinition ist die Tabelle t1
mit der Spalte c0
als Sortierschlüssel definiert.
create table t1 (c0 int, c1 int) sortkey(c0);
Der folgende Befehle ändert die Tabelle t1
in einen zusammengesetzten Sortierschlüssel.
alter table t1 alter sortkey(c0, c1);
Ändern Sie eine Tabelle zu ENCODE AUTO
Das folgende Beispiel zeigt, wie Sie eine Tabelle in ändern ENCODEAUTO.
Die Tabellendefinition für dieses Beispiel lautet wie folgt. Die Spalte c0
ist mit dem Kodierungstyp definiertAZ64, und die Spalte c1
ist mit dem Kodierungstyp definiertLZO.
create table t1(c0 int encode AZ64, c1 varchar encode LZO);
Für diese Tabelle ändert die folgende Anweisung die Kodierung inAUTO.
alter table t1 alter encode auto;
Das folgende Beispiel zeigt, wie eine Tabelle geändert wird, um die ENCODE AUTO Einstellung zu entfernen.
Die Tabellendefinition für dieses Beispiel lautet wie folgt. Die Tabellenspalten werden ohne Kodierung definiert. In diesem Fall ist die Kodierung standardmäßig auf ENCODEAUTO.
create table t2(c0 int, c1 varchar);
Für diese Tabelle ändert die folgende Anweisung die Kodierung der Spalte c0 auf. LZO Die Tabellenkodierung ist nicht mehr auf ENCODE AUTO eingestellt.
alter table t2 alter column c0 encode lzo;;
Ändern einer Kontrolle der Sicherheit auf Zeilenebene
Der folgende Befehl wird für die Tabelle RLS deaktiviert:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY OFF;
Der folgende Befehl wird für die Tabelle aktiviertRLS:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON;
Der folgende Befehl wird für die Tabelle RLS aktiviert und macht sie über Datashares zugänglich:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON; ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY FOR DATASHARES OFF;
Der folgende Befehl wird für die Tabelle RLS aktiviert und macht sie über Datashares unzugänglich:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON; ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY FOR DATASHARES ON;
Der folgende Befehl wird RLS aktiviert und setzt den Verbindungstyp RLS für die Tabelle auf OR:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON CONJUNCTION TYPE OR;
Der folgende Befehl RLS aktiviert und setzt den RLS Verbindungstyp AND für die Tabelle auf:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON CONJUNCTION TYPE AND;