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

Come inserire più righe nella stessa tabella-Oracle 10g

Un INSERT VALUES l'istruzione inserisce sempre esattamente 1 riga. Se desideri inserire più righe con valori codificati, l'approccio più comune sarebbe semplicemente eseguire due INSERT separati dichiarazioni.

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

Se lo desideri davvero, puoi selezionare i tuoi valori hardcoded da dual e quindi fai un 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

Oppure potresti fare un 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

Personalmente, userei solo due affermazioni.

Anche se questo non è correlato alla tua domanda, un paio di commenti

  • Sempre, elenca sempre le colonne nel tuo insert dichiarazione. Renderai il tuo SQL molto più robusto in modo che se in futuro aggiungi nuove colonne che consentano NULL valori le tue affermazioni continueranno a funzionare. Ed eviterai molti bug quando l'elenco delle colonne è proprio lì invece di sperare che qualcuno ricordi l'ordine delle colonne nella tabella.
  • Se stai inserendo un valore in una date colonna, utilizzare una data non una stringa letterale che rappresenta una data. Affidarsi alla conversione implicita del tipo di dati è fonte di molti bug. Usa un esplicito to_date o usa i valori letterali di data ANSI. E usa anni a 4 cifre.