Mit dem INSERT-Befehl können Sie neue Zeilen in eine Tabelle einfügen. Sie können jeweils eine einzelne Zeile oder mehrere Zeilen als Ergebnis einer Abfrage einfügen. Sie können die Spalten in der Zielliste in beliebiger Reihenfolge auflisten.
Das System fügt einen deklarierten Standardwert oder Nullwert für alle Spalten ein, die nicht in der Zielliste vorhanden sind. Das System weist die neue Spalte zurück, wenn Sie einen Nullwert in eine Spalte einfügen, die nicht für Nullwerte deklariert ist.
Wenn der Ausdruck für die einzelnen Spalten nicht den richtigen Datentyp hat, versucht das System, eine automatische Zwangskonvertierung von Typen durchzuführen.
INSERT INTO <Tabelle> [ ( <Spalte>[,<Spalte>…] ) ]
{ DEFAULT VALUES | VALUES [ ( <Ausdruck>[,<Ausdruck>…] ) | SELECT <Abfrage> }
| Eingabe | Beschreibung |
|---|---|
| <Tabelle> | Der Name der Tabelle, in die Zeilen eingefügt werden sollen. |
| <Spalte> | Der Name einer Spalte in einer Tabelle. |
| DEFAULT VALUES | Füllt alle Spalten mit Nullwerten oder mit Werten auf, die Sie beim Erstellen der Tabelle über Standardklauseln angegeben haben. |
| <Ausdruck> | Ein Ausdruck oder Wert, der einer Spalte zugewiesen ist. |
| <Abfrage> | Eine Abfrage. |
Der INSERT-Befehl hat die folgenden Ausgaben:
| Ausgabe | Beschreibung |
|---|---|
| insert 0 <A> | Der Befehl war erfolgreich. <A> steht für die Anzahl der Zeilen, die eingefügt wurden. |
| Error: Reload allow NULLs mismatch <Tabelle> <Spalte> | Der Befehl hat versucht, Daten aus der angegebenen Spalte einer externen Tabelle in eine Zieltabelle einzufügen. Die Einstellungen für Nullwerte der beiden Spalten stimmen aber nicht überein. Sie müssen für beide Tabellen gleich sein. Die Einfügeoperation ist fehlgeschlagen. |
| Error: Large table size limit on <Teil>, SPU <Standard- schriftart>. | Die Einfügeoperation würde bewirken, dass die Tabelle ihre maximale Größe überschreitet. Diese Größe beträgt 64 GB, wenn keine Unterstützung großer Tabellen aktiviert ist. |
Sie müssen der Benutzer mit Administratorberechtigung, der Eigner der Tabelle oder der Eigner der Datenbank oder des Schemas sein, in der/dem die Tabelle definiert ist, oder Ihr Konto muss die Einfügeberechtigung für die Tabelle oder Tabellenobjektklasse haben. Sie müssen auch über die Berechtigung zum Auswählen für jede Tabelle verfügen, die in einer WHERE-Klausel angegeben wurde.
Es folgen Verwendungsbeispiele.
MYDB.SCH1(USER)=> INSERT INTO films VALUES
('UA502','Bananas',105,'1971-07-13','Comedy',INTERVAL '82 minute');
MYDB.SCH1(USER)=> INSERT INTO films (code, title, did, date_prod,
kind) VALUES ('T_601', 'Yojimbo', 106, DATE '1961-06-16', 'Drama');
MYDB.SCH1(USER)=> INSERT INTO distributors (name) VALUES
('British Lion');
Da nur der Spaltenname angegeben wird, wird der ausgelassenen Spalte ihr Standardwert zugewiesen.MYDB.SCH1(USER)=> INSERT INTO films SELECT * FROM tmp;