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.
Im folgenden Befehl wird eine Tabelle namens EVENT_BACKUP für die Tabelle EVENT erstellt:
create table event_backup as select * from event;
Die erstellte Tabelle erbt die Verteilungs- und Sortierschlüssel aus der Tabelle EVENT.
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'event_backup';
column | type | encoding | distkey | sortkey
----------+-----------------------------+----------+---------+--------
catid | smallint | none | false | 0
dateid | smallint | none | false | 1
eventid | integer | none | true | 0
eventname | character varying(200) | none | false | 0
starttime | timestamp without time zone | none | false | 0
venueid | smallint | none | false | 0
Der folgende Befehl erstellt eine neue Tabelle namens EVENTDISTSORT, indem vier Spalten aus der Tabelle EVENT ausgewählt werden. Die neue Tabelle wird nach EVENTID verteilt und nach EVENTID und DATEID sortiert:
create table eventdistsort
distkey (1)
sortkey (1,3)
as
select eventid, venueid, dateid, eventname
from event;
Das Ergebnis ist wie folgt:
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'eventdistsort';
column | type | encoding | distkey | sortkey
---------+------------------------+----------+---------+-------
eventid | integer | none | t | 1
venueid | smallint | none | f | 0
dateid | smallint | none | f | 2
eventname | character varying(200)| none | f | 0
Sie könnten genau die gleiche Tabelle erstellen, indem Sie für die Verteilungs- und Sortierschlüssel Spaltennamen verwenden. Beispiel:
create table eventdistsort1
distkey (eventid)
sortkey (eventid, dateid)
as
select eventid, venueid, dateid, eventname
from event;
Die folgende Anweisung wendet eine gleichmäßige Verteilung auf die Tabelle an, definiert jedoch keinen expliziten Sortierschlüssel:
create table eventdisteven
diststyle even
as
select eventid, venueid, dateid, eventname
from event;
Die Tabelle übernimmt den Sortierschlüssel nicht aus der Tabelle EVENT (EVENTID), da für die neue Tabelle die Verteilung EVEN angegeben ist. Die neue Tabelle besitzt weder einen Sortierschlüssel noch einen Verteilungsschlüssel.
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'eventdisteven';
column | type | encoding | distkey | sortkey
----------+------------------------+----------+---------+---------
eventid | integer | none | f | 0
venueid | smallint | none | f | 0
dateid | smallint | none | f | 0
eventname | character varying(200) | none | f | 0
Die folgende Anweisung wendet eine gleichmäßige Verteilung an und definiert einen Sortierschlüssel:
create table eventdistevensort diststyle even sortkey (venueid)
as select eventid, venueid, dateid, eventname from event;
Die erstellte Tabelle besitzt einen Sortierschlüssel, jedoch keinen Verteilungsschlüssel.
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'eventdistevensort';
column | type | encoding | distkey | sortkey
----------+------------------------+----------+---------+-------
eventid | integer | none | f | 0
venueid | smallint | none | f | 1
dateid | smallint | none | f | 0
eventname | character varying(200) | none | f | 0
Die folgende Anweisung verteilt die Tabelle EVENT anhand einer anderen Schlüsselspalte aus den eingehenden Daten neu, die anhand der Spalte EVENTID sortiert sind, und definiert keine SORTKEY-Spalte. Daher ist die Tabelle nicht sortiert.
create table venuedistevent distkey(venueid)
as select * from event;
Das Ergebnis ist wie folgt:
select "column", type, encoding, distkey, sortkey
from pg_table_def where tablename = 'venuedistevent';
column | type | encoding | distkey | sortkey
----------+-----------------------------+----------+---------+-------
eventid | integer | none | f | 0
venueid | smallint | none | t | 0
catid | smallint | none | f | 0
dateid | smallint | none | f | 0
eventname | character varying(200) | none | f | 0
starttime | timestamp without time zone | none | f | 0