SQL Academy · leksjon

INSERT med flere rader

Sett inn én eller flere rader med én enkelt setning, og bruk INSERT ... SELECT til å kopiere data mellom tabeller.

Leksjon 1 av 413 trinn

INSERT med flere rader er en gratis leksjon i SQL Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SQL Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SQL Academy inneholder totalt 4 leksjoner.

INSERT av én rad

Den enkleste formen navngir kolonner og oppgir verdier:

INSERT INTO users (email, full_name)
VALUES ('alice@example.com', 'Alice Adams');

INSERT av flere rader

Sett inn mange rader i én setning. Raskere enn mange rundturer:

INSERT INTO users (email, full_name) VALUES
  ('alice@example.com', 'Alice Adams'),
  ('bob@example.com',   'Bob Brown'),
  ('carol@example.com', 'Carol Chen');

Hvorfor flere rader er raskere

Færre rundturer til databasen, færre tolknings- og planleggingssykluser og én WAL-flushing. Ved masseinnsetting av hundrevis av rader er multi-VALUES 5–10 ganger raskere enn å sette inn én rad om gangen.

Standardverdier

Utelat en kolonne for å bruke dens DEFAULT (eller NULL):

INSERT INTO orders (user_id, total)
VALUES (1, 99.50);
-- id, created_at, status filled by DEFAULTs

Eksplisitt DEFAULT

Du kan også bruke nøkkelordet DEFAULT:

INSERT INTO orders (id, user_id, total, status)
VALUES (DEFAULT, 1, 99.50, DEFAULT);

RETURNING

Hent kolonnene fra de innsatte radene uten en ekstra spørring (PostgreSQL):

INSERT INTO users (email, full_name)
VALUES ('alice@example.com', 'Alice Adams')
RETURNING id, created_at;

INSERT … SELECT

Kopier eller transformer rader fra en annen tabell:

INSERT INTO archive_orders (id, user_id, total)
SELECT id, user_id, total
FROM orders
WHERE created_at < NOW() - INTERVAL '5 years';

Masseinnlasting med COPY

For titusenvis av rader eller mer bør du bruke COPY-kommandoen – dette er langt den raskeste måten:

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
 \.

Unngå å sette inn i store transaksjoner uten grunn

Én transaksjon = én atomisk blokk. Hvis en import på én million rader mislykkes halvveis, rulles alt tilbake. Noen ganger er det ønskelig; andre ganger bør du dele opp i grupper på 10 000 rader.

Tips for bedre INSERT-ytelse

Ved store innsettinger:

  • Fjern sekundærindekser, sett inn radene og opprett indeksene på nytt
  • Deaktiver utløsere og fremmednøkkelkontroller hvis det er trygt
  • Bruk COPY når det er mulig
  • Juster maintenance_work_mem ved gjenoppbygging av indekser

Forhåndsvisning av konflikthåndtering

For å sette inn "hvis ny, ellers oppdater" bruker du INSERT ... ON CONFLICT – dette dekkes i neste leksjon.

Oppsummering

INSERT er enkelt; multi-row VALUES og INSERT … SELECT dekker de daglige behovene. RETURNING unngår ekstra rundturer. Ved masseinnlasting bør du bruke COPY.

Hurtigsjekk

Hva er den raskeste måten å laste inn 100 000 rader fra en CSV-fil i PostgreSQL på?

Gratis å komme i gang

Lær deg SQL med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
46
Leksjoner
183

Ofte stilte spørsmål

Er leksjonen «INSERT med flere rader» gratis?

Ja – hele teksten i «INSERT med flere rader» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av SQL Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i SQL Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «INSERT med flere rader»?

Sett inn én eller flere rader med én enkelt setning, og bruk INSERT ... SELECT til å kopiere data mellom tabeller. Du øver på SQL Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med SQL Academy?

Ingen tidligere erfaring er nødvendig. SQL Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «INSERT med flere rader»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne SQL Academy-leksjonen?

Ja. Alle SQL Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. INSERT med flere rader
  2. UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
  3. UPDATE med FROM og JOIN-lignende oppdateringer
  4. DELETE med USING og trygge mønstre
← Tilbake til SQL Academy