ตัวอย่างการ insert หลายๆ rows พร้อมกันใน Oracle

หาวิธี insert ข้อมูลทีละหลายๆ rows พร้อมกันใน Oracle ตั้งนานไปเจอมาที่นี่ ก็เลยเอามาเก็บไว้ซะเลย จะได้จดและจำและให้เพื่อนๆ ได้ดูด้วยครับ ซึ่งตอนแรกผมก็นึกว่ามันจะเป็นเหมือน MySQL คือ

insert into mytable(field1,fied2) values ('data11','data12'),('data21','data22'),('data31','data32');

แต่มันใช้ไม่ได้นะครับ Syntax ของ Oracle จะประมาณนี้ครับ

insert all

into mytable(field1,fied2) values  ('data11','data12')

into mytable(field1,fied2) values ('data21','data22')

into mytable(field1,fied2) values ('data31','data32')

select 1 from dual;

ตัวอย่างที่ 1: ถ้าต้องการ insert ข้อมูล 3 rows ใน table searchengine สามารถทำไ้ด้ดังนี้ครับ

insert all

into searchengine(id,name) values(1,'google')

into searchengine(id,name) values(2,'bing')

into searchengine(id,name) values(3,'yahoo')

select 1 from dual;

ตัวอย่างที่ 2: เราสามารถ insert ทีละหลาย rows หลาย table ได้ด้วยนะครับ

insert all

into searchengine(id,name) values(1,'google')

into  searchengine(id,name) values(2,'bing')

into member(id,firstname,lastname)  values(123,'firstname','lastname')

select 1 from dual;

ซึ่งตัวอย่างที่ 2 จะเป็นการ insert ข้อมูล 2 rows เข้าไปที่ table searchengine และ insert ข้อมูล 1 row เข้าไปที่ table member ครับ