ตัวอย่างการ 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 ครับ

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>