sql >> Databáze >  >> RDS >> Oracle

Vložení více řádků do Oracle

Z hlediska výkonu jsou tyto dotazy totožné.

UNION ALL nepoškodí výkon, protože Oracle odhaduje UNION 'ed dotaz, pouze když to potřebuje, neukládá výsledky jako první.

SELECT syntaxe je flexibilnější v tom smyslu, že můžete snáze manipulovat s SELECT dotaz, pokud chcete něco změnit.

Například tento dotaz:

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

lze přepsat jako

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

Nahrazením 2 s příslušným číslem můžete získat libovolný počet řádků.

V případě INSERT ALL , museli byste duplikovat popis cílové tabulky, který je méně čitelný, pokud potřebujete, řekněme, 40 řádky.



  1. SQLite JSON_EACH()

  2. Výstup výsledků dotazu SQLite jako příkaz INSERT

  3. Jak vytvořit rolovatelný a aktualizovatelný objekt ResultSet v JDBC

  4. 7 věcí, na které si dát pozor při nasazení PostgreSQL