Beispiele für INSERT - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

Beispiele für INSERT

Die Tabelle CATEGORY in der Datenbank TICKIT 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 Tabelle CATEGORY_STAGE mit einem ähnlichen Schema wie die Tabelle CATEGORY. Definieren Sie jedoch die 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 Tabelle CATEGORY aus und fügt Sie in die Tabelle CATEGORY_STAGE ein.

insert into category_stage (select * from category);

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

Dieser Befehl fügt eine neue Zeile in die Tabelle CATEGORY_STAGE ein, in der für jede Spalte der Reihenfolge nach ein Wert angegeben ist:

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)

In den folgenden Beispielen werden INSERT VALUES-Anweisungen für mehrere Zeilen gezeigt. Im ersten Beispiel werden spezifische CATID-Werte für zwei Zeilen und für die übrigen Spalten in den beiden Zeilen Standardwerte eingefügt.

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 VALUES in diesem Beispiel führt zu den gleichen Ergebnissen wie die Angabe von DEFAULT VALUES für eine INSERT-Anweisung für eine einzelne Zeile.

In den folgenden Beispielen wird das INSERT-Verhalten gezeigt, wenn eine Tabelle eine IDENTITY-Spalte besitzt. Erstellen Sie zunächst eine neue Version der Tabelle CATEGORY und fügen Sie dann Zeilen aus CATEGORY ein:

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 in die Spalte CATID IDENTITY keine spezifischen ganzzahligen Werte einfügen können. Die Werte in der IDENTITY-Spalte werden automatisch generiert.

Im folgenden Beispiel wird gezeigt, dass Unterabfragen nicht als Ausdrücke in INSERT VALUES-Anweisungen für mehrere Zeilen 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 ...