Insert (SQL)

SQL Insert teikums nodrošina iespēju datu bāzes tabulām pievienot ierakstus. Tam ir divi pamatveidi - pievienot tieši vienu ierakstu un pievienot (kopēt) ierakstus izmantojot apakšvaicājumu. Pēdējā variantā tiek pievienoti tieši tik ieraksti, cik atgriež apakšvaicājums, iespējams nulle (0), viens (1) vai daudzi.

 Viena ieraksta pievienošana 
Sintakse viena ieraksta pievienošanai ir šāda:

INSERT INTO <tabula> [(<kolonu uzskaitījums>)]
VALUES <vērtību uzskaitījums>

Aiz atslēgas vārdiem Insert into tiek rakstīts tabulas vārds, kurai tiks pievienoti ieraksti. Tālāk seko neobligāts kolonu uzskaitījums, kur tās viena no otras tiek atdalītas ar komatu. Ja kolonu uzskaitījums ir lietots, tad kolonu skaitam tajā un vērtību skaitam vērtību uzskaitījumā ir jāsakrīt. Ja kolonu uzskaitījums netiek lietots, tad vērtību skaitam ir jābūt tādam pašam kā kolonām tabulā. Vērtības tiek pozicionāli pēc kārtas ieliktas tajās pašās kolonās, kas ir kolonu uzskaitījumā vai arī tādā kārtībā, kā kolonas ir tabulā.
 Ierakstu pievienošana izmantojot apakšvaicājumu 
Sintakse vairāku ierakstu pievienošanai ir šāda:

INSERT INTO <tabula> [(<kolonu uzskaitījums>)]
SELECT <select apakšvaicājums>

Tāpat kā viena ieraksta pievienošanai arī šeit var neobligāti tieši uzskaitīt kolonas. Apakšvaicājumā atgriezto kolonu skaitam ir jāatbilst kolonu skaitam to uzskaitījumā, ja tāds ir lietots, vai kolonu skaitam tabulā. Protams, apakšvaicājumā var atlasīt konstantes un izteiksmes, ja tas nepieciešams. 

 Sarežģītāki ierakstu pievienošanas veidi 
Augstāk uzskaitītie ir ierakstu pievienošanas veidi, kas ir vairāk vai mazāk kopīgi visām datubāzu pārvaldības sistēmām. Katra atsevišķi parasti ir izveidojusi savus papildinājumus, piemēram, Oraclē ir iespējams vienlaikus pievienot ierakstus vairākās tabulās izmantojot INSERT ALL/FIRST sintaksi, tāpat vairumā no tām tiek nodrošināta iespēja izmantot atslēgas vārdu DEFAULT (vai kādu variāciju par to), lai kolonās ieliktu noklusētās vērtības, kas ir definētas tabulu izveides laikā.

 Triggers 

Ja tabulai, kurai tiek veikta INSERT darbība, ir nodefinēti trigeri, tad šie trigeri tiek izvērtēti darbības kontekstā. BEFORE INSERT trigeri atļauj modificēt datus pirms to ievietošanas tabulā, savukārt AFTER INSERT nevar šos datus modificēt, bet tos var izmantot, lai modificētu datus citās tabulās, piemēram, notikumu auditēšanai.

 Ārējās saites 
 Vienkāršs SQL Insert teikums
 Microsoft SQL Server Insert teikuma sintakse
 Oracle Insert teikuma sintakse
 MySQL Insert teikuma sintakse

Kategorija:SQL