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

Jak vložit více řádků do stejné tabulky-Oracle 10g

INSERT VALUES příkaz vždy vloží přesně 1 řádek. Pokud chcete vložit více řádků s pevně zakódovanými hodnotami, nejběžnějším postupem by bylo jednoduše provést dva samostatné INSERT prohlášení.

insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);

Pokud opravdu chcete, můžete vybrat pevně zakódované hodnoty z dual a poté proveďte INSERT SELECT

insert into t1
  select 131309, 'HP', '20-FEB-04',2000000,1235 from dual
  union all
  select 131310,'HT','20-APR-14',120020,1234 from dual

Nebo můžete udělat INSERT ALL

insert all 
  into t1 values(131309,'HP','20-FEB-04',2000000,1235)
  into t1 values(131310,'HT','20-APR-14',120020,1234)
  select * from dual

Osobně bych použil pouze dva výroky.

Ačkoli to nesouvisí s vaší otázkou, pár komentářů

  • Vždy uveďte sloupce v insert tvrzení. Vaše SQL bude mnohem robustnější, takže pokud v budoucnu přidáte nové sloupce, které umožňují NULL hodnoty vaše prohlášení budou stále fungovat. A vyhnete se spoustě chyb, když je seznam sloupců přímo zde, než abyste doufali, že si někdo pamatuje pořadí sloupců v tabulce.
  • Pokud vkládáte hodnotu do date použijte datum, nikoli řetězcový literál, který představuje datum. Spoléhání se na implicitní konverzi datových typů je zdrojem mnoha chyb. Použijte explicitní to_date nebo použijte datové literály ANSI. A použijte 4místné roky.



  1. Jak předat hodnotu databáze v hypertextovém odkazu pomocí PHP + HTML

  2. Jak zálohujete a obnovujete databázi jako kopii na stejném serveru?

  3. Čtyři věci, které jste nevěděli o Amazon Aurora

  4. Dotaz MySQL pro aktualizaci záznamů se zvýšeným datem