INSERT INTO utasítás
Egy vagy több rekordot ad hozzá a táblához. Ezt hozzáfűző lekérdezésnek hívják.
Szintaxis
Több rekordot létrehozó hozzáfűző lekérdezés:
INSERT INTO cél [IN
külső adatbázis] [(mező1[, mező2[, ...]])] SELECT [forrás.]mező1[, mező2[, ...]
|
Egyetlen rekordot létesítő hozzáfűző lekérdezés:
INSERT INTO cél
[(mező1[, mező2[, ...]])]
|
Az INSERT INTO utasítás a következő részekből áll:
Elem | Leírás |
cél | A tábla neve, melyhez hozzá szeretnénk fűzni az új rekordokat. |
külső adatbázis | A külső adatbázis elérési útja. Az elérési út az IN záradéknál van leírva. |
forrás | A tábla vagy lekérdezés neve, melyből a rekordokat át szeretnénk másolni. |
mező1, mező2 | Ha cél argumentum után szerepelnek, az új rekordban kitöltendő mezők nevei, ha forrás argumentum után szerepelnek, akkor ezekből a mezőkből veendők az adatok. |
táblakifejezés | Azon tábla vagy táblák neve, amelyekből származnak a beillesztett rekordok. Ez az argumentum lehet egyetlen tábla, INNER JOIN, LEFT JOIN, vagy RIGHT JOIN eredményeképp született kombináció, vagy tárolt lekérdezés. |
érték1, érték2 | Az új rekord egyes mezőibe írandó értékek. Minden érték a vele a listában azonos pozíción szereplő mezőbe kerül: az érték1 a mező1-be, az érték2 a mező2-be, és így tovább. Az értékeket vesszővel választjuk el és a szöveges értékeket idézőjelbe (" ") tesszük. |
Megjegyzés
A fenti szintaxis szerinti INSERT INTO utasítással adhatunk egyetlen rekordot egy táblához. Ez esetben a kód a rekord minden mezőjének nevét és értékét megadja. Minden olyan mezőt ki kell írni, amelynek értéket szeretnénk adni, s ezekhez az értéket is meg kell adni. Ha nem adunk meg minden mezőt, a kihagyottak a Null alapértéket kapják. Az új rekord a tábla végére kerül.
Az INSERT INTO utasítással több másik táblából vagy lekérdezésből származó rekord is hozzáfűzhető a táblához, ahogy fentebb a több rekordot hozzáfűző lekérdezés SELECT ... FROM záradéka mutatja. Ez esetben a SELECT záradék jelöli ki, mely mezőket használjuk a céltáblához fűzéshez.
A forrás és a céltábla jelenthet táblát is, lekérdezést is. Ha lekérdezést adunk meg, a Microsoft Jet adatbázis-motor a lekérdezésben szereplő minden táblához hozzáfűzi a rekordokat.
Az INSERT INTO záradék megadása nem kötelező, de ha szerepel, megelőzi a SELECT utasítást.
Ha a céltábla elsődleges kulcsot tartalmaz, akkor biztosítsuk, hogy az ilyen mezők egyedi nem- értéket kapjanak. Ellenkező esetben a Microsoft Jet adatbázis-motor nem adja hozzá az új rekordokat.
Ha Számláló mezőt tartalmazó rekordokat hozunk létre, és az új rekordokat újra szeretnénk számozni, a lekérdezésben ne írjuk be a Számláló mezőt. Csak akkor tegyük ezt, ha azt szeretnénk, hogy a mező az eddigi értékét tartalmazza.
Az IN záradék arra való, hogy másik adatbázisban levő táblához fűzzünk rekordokat.
Új tábla a SELECT... INTO utasítással hozható létre, ez a táblakészítő lekérdezés.
Hozzáfűző lekérdezés futtatása előtt úgy ellenőrizhetjük, hogy mely rekordok kerülnek be a táblába, hogy megvizsgáljuk egy ugyanolyan feltétellel rendelkező választó lekérdezés eredményét.
A hozzáfűző lekérdezés egy vagy több táblából másol át rekordokat egy másikba. Azok a táblák, amelyekből a rekordok származnak nem módosulnak.
Más táblából származó rekordok táblához fűzése helyett létrehozhatunk egyetlen új rekordot is úgy, hogy a VALUES záradékban megadjuk minden mező értékét. Ha kihagyjuk a mezőlistát, a VALUES záradékban minden mezőnek értéket kell adni, ellenkező esetben a hozzáfűzés sikertelen lesz. Minden egyes új rekordot külön INSERT INTO utasítással (benne VALUES záradékkal) kell létrehoznunk.