INSERT-sats
Använd INSERT
-satsen om du vill skapa poster i en databastabell. Du kan ange något av följande:
-
En lista över värden som ska infogas som en ny post
-
En
SELECT
-sats som kopierar data från en annan tabell som ska infogas som en uppsättning nya poster
INSERT
-satsen har följande format:
INSERT INTO tabellnamn [(kolumnnamn, ...)] VALUES (uttr, ...)
kolumnnamn
är en valfri lista över kolumnnamn som ger tillgång till namnet och ordningsföljden för de kolumner vilkas värde anges i instruktionen VALUES
. Om du utelämnar kolumnnamn
måste värdeuttrycken (uttr
) ge värden för alla kolumner som är definierade i tabellen. De måste också komma i samma ordningsföljd som kolumnerna definierades i tabellen. kolumnnamn
kan även ange en fältrepetition, till exempel lastDates[4]
.
uttr
är den lista över uttryck som ger värdena för den nya postens kolumner. Normalt är uttrycken konstanta värden för kolumnerna (men de kan också vara en delfråga). Värden för teckensträngar måste omslutas av enkla citationstecken ('). Om du vill ta med ett enkelt citationstecken i ett värde för en teckensträng som omsluts av enkla citationstecken, använder du två enkla citationstecken tillsammans (t.ex. 'Don''t'
).
Delfrågor måste omges av parenteser.
Infoga en lista över uttryck.
INSERT INTO anst (efternamn, förnamn, anst_id, lön, anst_datum)
VALUES ('Andersson', 'Anders', 'E22345', 27500, DATE '2028-06-05')
Varje INSERT
-sats lägger till en post i databastabellen. I det här fallet har en post lagts till i databastabellen över anställda, anst
. Värden har angetts för fem kolumner. De återstående kolumnerna i tabellen tilldelas ett tomt värde, dvs. Null.
I containerfält kan du bara använda INSERT
med text, såvida du inte förbereder ett parameteruttryck och strömmar data från programmet. Om du vill använda binära data kan du helt enkelt tilldela filnamnet genom att omge det med enkla citationstecken eller använda funktionen PutAs()
. När du anger filnamnet härleds filtypen från filtillägget:
INSERT INTO tabellnamn (containernamn) VALUES(? AS 'filnamn.filtillägg')
Filtyper som inte stöds kommer att sättas in som typen FIL.
Ange typen när du använder funktionen PutAs()
: PutAs(kol, 'typ')
, där typvärdet är en filtyp som stöds, enligt beskrivningen i Hämta innehållet i ett containerfält: Funktionen CAST() och funktionen GetAs().
SELECT
-satsen är en fråga som returnerar värden för varje kolumnnamn
värde som anges i listan över kolumnnamn. Att använda en SELECT
-sats i stället för en lista över värdeuttryck medför att du kan välja en uppsättning rader från en tabell och infoga den i en annan tabell med en enda INSERT
-sats.
Infoga med hjälp av en SELECT
-sats.
INSERT INTO anst1 (förnamn, efternamn, anst_id, avd, lön)
SELECT förnamn, efternamn, anst_id, avd, lön FROM anst
WHERE avd = 'D050'
I den här typen av INSERT
-satser måste antalet kolumner som ska infogas matcha antalet kolumner i SELECT
-satsen. Listan över kolumner som ska infogas måste motsvara kolumnerna i SELECT
-satsen på samma sätt som den måste motsvara en lista över värdeuttryck i den andra typen av INSERT
-satser. Exempel: Den första infogade kolumnen motsvarar den första valda kolumnen; den andra infogade kolumnen motsvarar den andra valda, osv.
Storleken och datatypen för dessa motsvarande kolumner måste överensstämma. Varje kolumn i listan SELECT
bör ha en datatyp som ODBC- eller JDBC-drivrutinen accepterar vid en vanlig INSERT
/UPDATE
av den motsvarande kolumnen i listan INSERT
. Värdena trunkeras när storleken på värdet i kolumnen i listan SELECT
är större än storleken på den motsvarande kolumnen i listan INSERT
.
SELECT
-satsen beräknas innan några värden infogas.