Oracle PL SQL rowcount วิธีการ เช็ค ถ้าเคยมีอยู่แล้วให้ Update ถ้าไม่มีให้ Insert  สร้างคำถาม

 4,949 view  หมวดหมู่ : สำหรับโปรแกรมเมอร์  วันที่สร้าง : 04/04/2017

Oracle PL SQL rowcount วิธีการ เช็ค ถ้าเคยมีอยู่แล้วให้ Update ถ้าไม่มีให้ Insert


ถ้าเราเจอโจทย์ในการ Update Data ว่า ถ้าไม่เคยมี Record ให้ Insert ลงไปก่อน
บางทีเราก็ใช้วิธีการ select หรือ count ดูก่อน
ถ้ามี ก็ Update ถ้าไม่มีก็ insert
วิธีนี้ บางทีมันก็ทำให้เราต้องมา count ก่อนทุกครั้ง
ผมทีทางออกครับ โดยทำดังนี้
มาถึงเราก็ Update เลยไม่ต้องสนในว่า มีหรือไม่มี
จากนั้นค่อยมาเข็คทีหลังว่า Update ไปกี่ Record
ถ้า มากกว่า 0 ก็ไม่ต้องทำอะไร
แต่ถ้า Update ไม่ได้ซัก record แสดงว่าไม่เคยมีมาก่อน
เราก็จัดการ Insert ลงไปซะ

เราสามารถใช้คำสั่ง SQL%ROWCOUNT ในการเช็คได้
หลังจาก update ถ้า SQL%ROWCOUNT=0 แสดงว่า ไม่เคยมี
แต่ถ้า SQL%ROWCOUNT > 0 แสดงว่า update ได้
ตามตัวอย่าง Code ด้านล่าง

UPDATE mytable
SET myfield = 50
WHERE code_id = 1001;
IF SQL%ROWCOUNT = 0 THEN
INSERT INTO mytable (code_id, myfield)
VALUES (50, 1001);
END IF;

ประมาณนี้ครับ


ถ้าชอบบทความนี้ กด Like เลย :Oracle PL SQL rowcount วิธีการ เช็ค ถ้าเคยมีอยู่แล้วให้ Update ถ้าไม่มีให้ Insert
TAGS : Oracle   Programming   โปรแกรมมิ่ง  
 4,949 view  หมวดหมู่ : สำหรับโปรแกรมเมอร์  วันที่สร้าง : 04/04/2017



SOA,Java,XSLT

 ร่วมแสดงความคิดเห็นได้ที่นี่




× แจ้งเตือน! เราสนับสนุนทุกความคิดเห็น ที่ ใช้ถ้อยคำสุภาพ ไม่ละเมิดผู้อื่น ไม่ก่อให้เกิดความขัดแย้ง

เนื้อหาที่เกี่ยวช้อง

  Grunt js คืออะไร หาคำตอบได้ที่นี่ ถามเมื่อ (2015-09-30)   2,445 views  (ดูล่าสุดเมื่อ 3 วินาที!!)

  Unix คำสั่ง เช็ค process Java ถามเมื่อ (2016-03-04)   2,813 views  (ดูล่าสุดเมื่อ 28 วินาที!!)

  คำสั่ง unix check size folder unix ถามเมื่อ (2016-09-23)   2,211 views  (ดูล่าสุดเมื่อ 1 นาที)

  แจก Code ตัวอย่าง Code และ Error ต่างๆ รวบรวมไว้ที่นี่ ถามเมื่อ (2016-07-28)   1,688 views  (ดูล่าสุดเมื่อ 5 นาที)

  jQuery กำหนดให้รอ response จาก AJAX ด้วย option async ถามเมื่อ (2019-06-01)   2,467 views  (ดูล่าสุดเมื่อ 7 นาที)

  NoSQL databases คืออะไร ทำความรู้จักกับ NoSQL ถามเมื่อ (2014-06-12)   2,884 views  (ดูล่าสุดเมื่อ 12 นาที)

  Oracle Format Date แบบนี้ 30 DEC 2014 ทำอย่างไรครับ ถามเมื่อ (2017-03-03)   2,855 views  (ดูล่าสุดเมื่อ 19 นาที)

  ขอตัวอย่าง Hibernate get Sequenc Oracle โดยไม่ต้อง Mapping ครับ ถามเมื่อ (2013-07-04)   3,200 views  (ดูล่าสุดเมื่อ 20 นาที)

  Ireport การทำ Row สลับ สี Background Color แถวคู่แถวคี่ Jasper report ถามเมื่อ (2018-11-30)   2,087 views  (ดูล่าสุดเมื่อ 21 นาที)

  พอร์ต RS 232 คืออะไร ใช้ทำอะไร เราสามารถเรียกได้อีกอย่างว่าอะไร ถามเมื่อ (2011-08-01)   3,641 views  (ดูล่าสุดเมื่อ 28 นาที)


 

บ้านเดียวกันดอทคอม เว็บถามตอบ รวมทุกเรื่องที่คุณอยากรู้ ให้ความรู้ ความบันเทิง มีสาระ
www.ban1gun.com