sql >> Database teknologi >  >> RDS >> Oracle

Indsættelse af flere rækker i Oracle

Set fra ydeevnens synspunkt er disse forespørgsler identiske.

UNION ALL vil ikke skade ydeevnen, da Oracle estimerer UNION 'ed forespørgsel, når den har brug for det, cacher den ikke resultaterne først.

SELECT syntaks er mere fleksibel i den forstand, at du nemmere kan manipulere SELECT spørg, hvis du vil ændre noget.

For eksempel denne forespørgsel:

insert into pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
          select 8000,0,'Multi 8000',1 from dual
union all select 8001,0,'Multi 8001',1 from dual

kan omskrives som

INSERT
INTO    pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
SELECT  7999 + level, 0, 'Multi ' || 7999 + level, 1
FROM    dual
CONNECT BY
        level <= 2

Ved at erstatte 2 med passende antal, kan du få et hvilket som helst antal rækker, du ønsker.

I tilfælde af INSERT ALL , vil du skulle duplikere destinationstabelbeskrivelsen, som er mindre læsbar, hvis du har brug for f.eks. 40 rækker.



  1. java.sql.SQLException:Forkert strengværdi:'\xF0\x9F\x91\xBD\xF0\x9F...'

  2. Sådan undgår du, at aktivitetsmonitor skader din SQL-servers ydeevne

  3. MySQL Database Service – Nye HeatWave-innovationer

  4. mysql SQL:specifik element skal først være og derefter sortere resten af ​​emnerne