Lisää (SQL)
Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 7. lokakuuta 2016 tarkistetusta
versiosta . tarkastukset vaativat
9 muokkausta .
INSERT on SQL -lause , jonka avulla voit lisätä rivejä taulukkoon täyttämällä ne arvoilla. Arvot voidaan lisätä luetteloimalla käyttämällä sana-arvot ja luetella suluissa pilkuilla erotettuina tai käyttämällä select -lausetta .
Käyttöesimerkkejä
Käyttämällä arvojen luetteloa ja määrittämällä sarakkeet:
lisää osaan < taulukon nimi > ([ < Sarakkeen nimi > , ... ]) arvot ( < Arvo > ,...)
Esimerkiksi:
INSERT INTO phone_book ( nimi , numero ) VALUES ( 'John Doe' , '555-1212' );
Käyttämällä arvojen luetteloa ilman sarakkeiden määrittämistä:
lisää osaan < taulukon nimi > arvot ( < arvo > ,...)
Esimerkiksi:
INSERT INTO phone_book VALUES ( 'John Doe' , '555-1212' );
Valitsemalla:
lisää kohtaan < taulukon nimi > valitse < sarakkeen nimi > ,... kohdasta < taulukon nimi >
Jälkimmäisessä tapauksessa taulukkoon voidaan lisätä useampi kuin yksi tietue. Jos taulukossa on muita kenttiä, jotka on täytettävä, mutta joita ei ole määritetty insert-käskyssä, ne asetetaan oletusarvoon tai tyhjäksi, jos oletusarvoa ei ole määritetty.
Vaihtoehtoinen syntaksi INSERT-käskylle
Joillakin DBMS-järjestelmillä, kuten MySQL:llä, on vaihtoehtoinen syntaksi INSERT-käskylle, jossa arvot määritetään sarakkeille SET-avainsanalla:
lisää kohtaan < taulukon nimi > joukko < sarakkeen nimi 1 > = < arvo 1 > , < sarakkeen nimi 2 > = < arvo 2 > ...
Ominaisuudet
Lausunnon suorittamisen aikana voi tapahtua virheitä:
- jos kenttä luotiin ei null-parametrilla eikä oletusarvoa määritetty (katso create ), tapahtuu virhe, jos sille ei ole lisättävää arvoa. Ratkaisu on ilmeinen:
- tai poista not null -parametri
- tai määritä oletusarvo
- tai lisää arvo
- jos yritetään lisätä kenttään tyyppitunnuksella (autoincrement), tapahtuu myös virhe. On kaksi tapaa ratkaista ongelma:
- älä lisää arvoa tähän kenttään
- määritä identiteetin lisäys on -vaihtoehto ja lisää sitten yksilöllinen arvo tälle sarakkeelle
identiteetin_lisäysvaihtoehto (MS SQL Server)
tämä lausunto ei toimi, sinun on määritettävä taulukon nimi.
Ota käyttöön vaihtoehto:
SET IDENTITY_INSERT- taulukko { PÄÄLLÄ | POIS }
Kun olet ottanut tämän vaihtoehdon käyttöön, voit lisätä arvoja identiteetiksi määriteltyihin kenttiin. Huomaa, että arvon on oltava yksilöllinen.
Tämän vaihtoehdon käyttöönottoa ilman selvää tarvetta ei suositella. Sitä tulisi kuitenkin käyttää tietueissa, joissa joitain sarakkeita on muutettava muuttamatta sen identiteettisaraketta (esimerkiksi jos tämä sarake on linkitetty toiseen taulukkoon).
Avaimen saaminen
Korvausavainta ensisijaisena avaimena käyttävät kehittäjät törmäävät usein tilanteeseen, jossa heidän on saatava tietokannan luoma ensisijainen avain (muissa kyselyissä käytettäväksi) vastauksena SQL INSERT -käskyyn. Useimmat järjestelmät eivät kuitenkaan salli SQL INSERT -käskyn palauttaa tietoja. Mahdolliset ratkaisut:
- Käytä tietokantakohtaista tallennettua toimintosarjaa , joka luo korvaavan avaimen, suorittaa INSERT-toiminnon ja palauttaa luodun avaimen. Esimerkiksi Microsoft SQL Serverissä avaimen palauttaa erikoisfunktio SCOPE_IDENTITY() ja SQLitessä last_insert_rowid()-funktio.
- Käytä tietokantakohtaista SELECT -toimintoa väliaikaisessa taulukossa, joka sisältää viimeksi lisätyn rivin (tai rivit). DB2 toteuttaa tämän ominaisuuden seuraavasti:
SELECT *
LOPPUTAULUKKOSTA ( INSERT INTO phone_book VALUES ( ' Peter Doe' , ' 555-2323 ' ) ) AS t
DB2 for z/OS toteuttaa tämän ominaisuuden seuraavasti:
VALITSE EMPNO , TYÖPALKKA , VUOKRAUSPÄIVÄ LOPPUPAUDISTA
( LISÄÄ EMPSAMPIN ( NIMI , PALKKA , OSASTO , TASO ) ARVOT ( ' Mary Smith ' , 35000. 00 , 11 , ' Associate ' ) ) ; _ _
- Käyttämällä SELECT -käskyä INSERT-käskyn jälkeen erikoisfunktiolla, joka tietyssä tietokannassa palauttaa viimeksi lisätyn rivin luodun ensisijaisen avaimen.
- Käyttämällä ainutlaatuista kenttien yhdistelmää, jotka olivat osa alkuperäistä SQL INSERT -käskyä myöhemmissä SELECT-käskyn kutsuissa .
- Käytä GUID -tunnusta SQL INSERT -käskyssä, niin saat tuloksen SELECT-käskyn kautta .
- Käyttämällä MySQL :n mysql_insert_id() PHP -funktiota INSERT-käskyn jälkeen.
- käyttämällä INSERT:tä ja sen jälkeen SELECT LAST_INSERT_ID() MySQL :lle .
- INSERT-käskyn käyttäminen OUTPUT-lauseen kanssa (Transact-SQL) Microsoft SQL Server 2005 :stä lähtien .
DECLARE @ table TABLE (
[ id ] [ smallint ] IDENTITY ( 1 , 1 ) NOT NULL ,
[ name ] [ nchar ]( 50 ) NULL );
INSERT INTO @ -taulukko
OUTPUT INSERTED . id
VALUES ( 'Peter Doe' );
- INSERT-käskyn käyttäminen RETURNING-muuntimen kanssa PostgreSQL :lle (versiosta 8.2) ja Firebirdille ( versiosta 2.0 ). Palautettu lista on identtinen SELECT-käskyn tuloksen kanssa.
INSERT INTO phone_book VALUES ( 'Peter Doe' , '555-2323' )
PALAUTTAVAN puhelinkirjan_tunnus
- INSERT-käskyn käyttäminen Oraclen RETURNING-muuntimen kanssa . Firebirdissä käytetään samaa syntaksia proseduureissa, liipaisimissa ja suorituslohkoissa.
INSERT INTO phone_book VALUES ( 'Peter Doe' , '555-2323' )
PALAUTUS phone_book_id INTO v_pb_id
- IDENTITY()-funktio H2 :ssa palauttaa viimeksi lisätyn (avaimen?)
VALITSE IDENTITY ();
Katso myös
SQL |
---|
Versiot |
- SQL-86
- SQL-89
- SQL-92
- SQL:1999
- SQL:2003
- SQL:2006
- SQL:2008
- SQL:2011
- SQL:2016
|
---|
Avainsanat |
|
---|
Aiheeseen liittyvät artikkelit |
|
---|
ISO/IEC SQL:n osat |
- puitteet
- säätiö
- Puhelutason käyttöliittymä
- Pysyvät tallennetut moduulit
- Ulkoisten tietojen hallinta
- Objektikielen sidokset
- Tieto- ja määritelmäkaaviot
- Java-ohjelmointikielen SQL-rutiinit ja -tyypit
- XML:ään liittyvät tekniset tiedot
|
---|