INSERT useille riveille
Lisätkää yksi tai useita rivejä yhdellä lauseella ja kopioikaa tietoja taulujen välillä INSERT ... SELECT -rakenteella.
INSERT useille riveille on ilmainen SQL Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu SQL Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. SQL Academy-kurssilla on yhteensä 4 oppituntia.
Yhden rivin INSERT
Yksinkertaisimmassa muodossa ilmoitetaan sarakkeet ja annetaan arvot:
INSERT INTO users (email, full_name)
VALUES ('alice@example.com', 'Alice Adams');Monen rivin INSERT
Lisää monta riviä yhdellä lauseella. Tämä on nopeampaa kuin useat erilliset verkkokutsut:
INSERT INTO users (email, full_name) VALUES
('alice@example.com', 'Alice Adams'),
('bob@example.com', 'Bob Brown'),
('carol@example.com', 'Carol Chen');Miksi usean rivin lisäys on nopeampi
Vähemmän edestakaisia pyyntöjä tietokantaan, vähemmän jäsennys- ja suunnittelukierroksia sekä yksi WAL-huuhtelu. Satojen rivien joukkolisäyksissä monirivinen VALUES on 5–10 kertaa nopeampi kuin rivien lisääminen yksi kerrallaan.
Oletusarvot
Jätä sarake pois käyttääksesi sen DEFAULT-arvoa (tai NULL-arvoa):
INSERT INTO orders (user_id, total)
VALUES (1, 99.50);
-- id, created_at, status filled by DEFAULTsEksplisiittinen DEFAULT
Voit myös käyttää DEFAULT-avainsanaa:
INSERT INTO orders (id, user_id, total, status)
VALUES (DEFAULT, 1, 99.50, DEFAULT);RETURNING
Hae lisätyn rivin tai lisättyjen rivien sarakkeet ilman toista kyselyä (PostgreSQL):
INSERT INTO users (email, full_name)
VALUES ('alice@example.com', 'Alice Adams')
RETURNING id, created_at;INSERT … SELECT
Kopioi tai muunna rivejä toisesta taulusta:
INSERT INTO archive_orders (id, user_id, total)
SELECT id, user_id, total
FROM orders
WHERE created_at < NOW() - INTERVAL '5 years';Joukkolataus COPY-komennolla
Kymmenientuhansien tai sitä useampien rivien lataamiseen käytä COPY-komentoa — se on selvästi nopein tapa:
COPY users (email, full_name) FROM '/tmp/users.csv' (FORMAT csv, HEADER true);
-- Or from STDIN in a client:
COPY users (email, full_name) FROM STDIN;
alice@example.com\tAlice
bob@example.com\tBob
\.Vältä lisäyksiä suuriin transaktioihin ilman syytä
Yksi transaktio = yksi atominen lohko. Jos miljoonan rivin tuonti epäonnistuu puolivälissä, koko toiminto perutaan. Joskus tämä on haluttua, mutta joskus rivit kannattaa käsitellä 10 000 rivin erissä.
INSERT-suorituskykyvinkit
Suurissa lisäyksissä:
- Poistakaa toissijaiset indeksit, tehkää lisäys ja luokaa indeksit uudelleen
- Poistakaa triggerit ja FK-tarkistukset käytöstä, jos se on turvallista
- Käyttäkää COPY-komentoa aina kun mahdollista
- Säätäkää
maintenance_work_mem-asetusta indeksien uudelleenluontia varten
Konfliktien käsittelyn esikatselu
Kun haluatte lisätä rivin "jos uusi, muuten päivitä", käytätte INSERT ... ON CONFLICT -komentoa — sitä käsitellään seuraavassa oppitunnissa.
Kertaus
INSERT on suoraviivainen; monirivinen VALUES ja INSERT … SELECT kattavat tavallisimmat käyttötapaukset. RETURNING välttää ylimääräiset edestakaiset pyynnöt. Käyttäkää joukkolatauksiin COPY-komentoa.
Pikatarkistus
Mikä on nopein tapa ladata 100 000 riviä CSV-tiedostosta PostgreSQL-tietokantaan?
Opi SQL tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 46
- Oppitunnit
- 183
Usein kysytyt kysymykset
Onko oppitunti ”INSERT useille riveille” ilmainen?
Kyllä – oppitunnin ”INSERT useille riveille” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko SQL Academy-kurssin, päivitä CoddyKit PROhon. SQL Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”INSERT useille riveille”?
Lisätkää yksi tai useita rivejä yhdellä lauseella ja kopioikaa tietoja taulujen välillä INSERT ... SELECT -rakenteella. Harjoittelet SQL Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni SQL Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin SQL Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”INSERT useille riveille”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä SQL Academy-oppitunnilla?
Kyllä. Jokainen SQL Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- INSERT useille riveille
- UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
- UPDATE FROM- ja JOIN-tyylisillä päivityksillä
- DELETE USING-lauseella ja turvalliset käytännöt