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

Sådan indsætter du flere rækker i den samme tabel - Oracle 10g

En INSERT VALUES sætning indsætter altid nøjagtig 1 række. Hvis du ønsker at indsætte flere rækker med hårdkodede værdier, vil den mest almindelige fremgangsmåde simpelthen være at udføre to separate INSERT udsagn.

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

Hvis du virkelig ville, kunne du vælge dine hårdkodede værdier fra dual og udfør derefter en 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

Eller du kan lave en 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

Personligt ville jeg bare bruge to udsagn.

Selvom dette ikke er relateret til dit spørgsmål, et par kommentarer

  • Altid, altid liste kolonnerne i dit insert udmelding. Du vil gøre din SQL meget mere robust, så hvis du tilføjer nye kolonner i fremtiden, der tillader NULL værdier, vil dine udsagn stadig fungere. Og du undgår mange fejl, når kolonnelisten er lige der, i stedet for at håbe på, at nogen husker rækkefølgen af ​​kolonner i tabellen.
  • Hvis du indsætter en værdi i en date kolonne, skal du bruge en dato, ikke en streng, der repræsenterer en dato. At stole på implicit datatypekonvertering er en kilde til mange fejl. Brug en eksplicit to_date eller brug bogstaver for ANSI-dato. Og brug 4-cifrede årstal.



  1. SQL - Tjek om en kolonne automatisk stiger

  2. MySQL Er det muligt at lave underforespørgsler efter LIMIT-syntaks? Hvis ikke, hvorfor?

  3. Oracle inaktiv forbindelse

  4. Hvordan opretter man forbindelse til databasen ved hjælp af QOCI eller QODBC med korrekt kodning?