INSERTBeispiele - Amazon Redshift

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.

INSERTBeispiele

Die CATEGORY Tabelle in der TICKIT Datenbank enthält die folgenden Zeilen:

catid | catgroup | catname | catdesc -------+----------+-----------+-------------------------------------------- 1 | Sports | MLB | Major League Baseball 2 | Sports | NHL | National Hockey League 3 | Sports | NFL | National Football League 4 | Sports | NBA | National Basketball Association 5 | Sports | MLS | Major League Soccer 6 | Shows | Musicals | Musical theatre 7 | Shows | Plays | All non-musical theatre 8 | Shows | Opera | All opera and light opera 9 | Concerts | Pop | All rock and pop music concerts 10 | Concerts | Jazz | All jazz singers and bands 11 | Concerts | Classical | All symphony, concerto, and choir concerts (11 rows)

Erstellen Sie eine CATEGORY STAGE _-Tabelle mit einem ähnlichen Schema wie die CATEGORY Tabelle, definieren Sie jedoch Standardwerte für die Spalten:

create table category_stage (catid smallint default 0, catgroup varchar(10) default 'General', catname varchar(10) default 'General', catdesc varchar(50) default 'General');

Die folgende INSERT Anweisung wählt alle Zeilen aus der CATEGORY Tabelle aus und fügt sie in die STAGE Tabelle CATEGORY _ ein.

insert into category_stage (select * from category);

Die Klammern, in die die Abfrage eingeschlossen ist, sind optional.

Mit diesem Befehl wird eine neue Zeile in die STAGE Tabelle CATEGORY _ eingefügt, wobei für jede Spalte der Reihe nach ein Wert angegeben wird:

insert into category_stage values (12, 'Concerts', 'Comedy', 'All stand-up comedy performances');

Sie können auch eine neue Zeile einfügen, die spezifische Werte und Standardwerte kombiniert:

insert into category_stage values (13, 'Concerts', 'Other', default);

Führen Sie die folgende Abfrage aus, um die eingefügten Zeilen zurückzugeben:

select * from category_stage where catid in(12,13) order by 1; catid | catgroup | catname | catdesc -------+----------+---------+---------------------------------- 12 | Concerts | Comedy | All stand-up comedy performances 13 | Concerts | Other | General (2 rows)

Die folgenden Beispiele zeigen einige mehrzeilige INSERT VALUES Anweisungen. Das erste Beispiel fügt spezifische CATID Werte für zwei Zeilen und Standardwerte für die anderen Spalten in beiden Zeilen ein.

insert into category_stage values (14, default, default, default), (15, default, default, default); select * from category_stage where catid in(14,15) order by 1; catid | catgroup | catname | catdesc -------+----------+---------+--------- 14 | General | General | General 15 | General | General | General (2 rows)

Im nächsten Beispiel werden drei Zeilen mit verschiedenen Kombinationen aus spezifischen und Standardwerten eingefügt:

insert into category_stage values (default, default, default, default), (20, default, 'Country', default), (21, 'Concerts', 'Rock', default); select * from category_stage where catid in(0,20,21) order by 1; catid | catgroup | catname | catdesc -------+----------+---------+--------- 0 | General | General | General 20 | General | Country | General 21 | Concerts | Rock | General (3 rows)

Der erste Satz von führt VALUES in diesem Beispiel zu den gleichen Ergebnissen wie die Angabe DEFAULT VALUES für eine einzeilige INSERT Anweisung.

Die folgenden Beispiele zeigen INSERT das Verhalten, wenn eine Tabelle eine IDENTITY Spalte hat. Erstellen Sie zunächst eine neue Version der CATEGORY Tabelle und fügen Sie dann Zeilen ein ausCATEGORY:

create table category_ident (catid int identity not null, catgroup varchar(10) default 'General', catname varchar(10) default 'General', catdesc varchar(50) default 'General'); insert into category_ident(catgroup,catname,catdesc) select catgroup,catname,catdesc from category;

Beachten Sie, dass Sie keine bestimmten Ganzzahlwerte in die CATID IDENTITY Spalte einfügen können. IDENTITYSpaltenwerte werden automatisch generiert.

Das folgende Beispiel zeigt, dass Unterabfragen nicht als Ausdrücke in INSERT VALUES mehrzeiligen Anweisungen verwendet werden können:

insert into category(catid) values ((select max(catid)+1 from category)), ((select max(catid)+2 from category)); ERROR: can't use subqueries in multi-row VALUES

Das folgende Beispiel zeigt eine Einfügung in eine temporäre Tabelle, die mithilfe der WITH SELECT-Klausel mit Daten aus der venue-Tabelle gefüllt wird. Weitere Informationen zur Tabelle venue finden Sie unter Beispieldatenbank.

Erstellen Sie zunächst die temporäre Tabelle #venuetemp.

CREATE TABLE #venuetemp AS SELECT * FROM venue;

Listen Sie die Zeilen in der #venuetemp-Tabelle auf.

SELECT * FROM #venuetemp ORDER BY venueid; venueid | venuename | venuecity | venuestate| venueseats --------+--------------------------+------------+-----------+------------ 1 Toyota Park Bridgeview IL 0 2 Columbus Crew Stadium Columbus OH 0 3 RFK Stadium Washington DC 0 4 CommunityAmerica Ballpark Kansas City KS 0 5 Gillette Stadium Foxborough MA 68756 ...

Fügen Sie mithilfe der WITH SELECT-Klausel 10 doppelte Zeilen in die #venuetemp-Tabelle ein.

INSERT INTO #venuetemp (WITH venuecopy AS (SELECT * FROM venue) SELECT * FROM venuecopy ORDER BY 1 LIMIT 10);

Listen Sie die Zeilen in der #venuetemp-Tabelle auf.

SELECT * FROM #venuetemp ORDER BY venueid; venueid | venuename | venuecity | venuestate| venueseats --------+--------------------------+------------+-----------+------------ 1 Toyota Park Bridgeview IL 0 1 Toyota Park Bridgeview IL 0 2 Columbus Crew Stadium Columbus OH 0 2 Columbus Crew Stadium Columbus OH 0 3 RFK Stadium Washington DC 0 3 RFK Stadium Washington DC 0 4 CommunityAmerica Ballpark Kansas City KS 0 4 CommunityAmerica Ballpark Kansas City KS 0 5 Gillette Stadium Foxborough MA 68756 5 Gillette Stadium Foxborough MA 68756 ...