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

 5,055 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   โปรแกรมมิ่ง  
 5,055 view  หมวดหมู่ : สำหรับโปรแกรมเมอร์  วันที่สร้าง : 04/04/2017



SOA,Java,XSLT

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




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

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

  Oracle LAG กับ LEAD SQL Command สำหรับ select ข้อมูลจาก row ก่อนหน้า หรือ ถัดไป ถามเมื่อ (2017-06-01)   3,330 views  (ดูล่าสุดเมื่อ 8 นาที)

  Spring 4 เจอ error java lang ClassNotFoundException org springframework orm hibernate3 annotation AnnotationSessionFactoryBean ถามเมื่อ (2017-03-24)   2,472 views  (ดูล่าสุดเมื่อ 8 นาที)

  Java Read Folder ขอตัวอย่าง Code Java ในการอ่านไฟล์ใน Folder ครับ ถามเมื่อ (2012-09-25)   3,014 views  (ดูล่าสุดเมื่อ 10 นาที)

  PLSQL Sub String ด้วยคำสั่ง substr วิธีใช้งาน ถามเมื่อ (2012-11-28)   6,680 views  (ดูล่าสุดเมื่อ 13 นาที)

  ขอตัวอย่างการเขียน Query ใน Hibernate ด้วยครับ ถามเมื่อ (2012-05-16)   2,919 views  (ดูล่าสุดเมื่อ 22 นาที)

  field คืออะไรคะ ถามเมื่อ (2013-05-10)   3,417 views  (ดูล่าสุดเมื่อ 22 นาที)

  Oracle PIPELINED คืออะไร ใช้งานยังไงครับ ถามเมื่อ (2011-09-21)   3,596 views  (ดูล่าสุดเมื่อ 28 นาที)

  Hibernate Mapping Auto number ใน Oracle ด้วย SEQUENCE ถามเมื่อ (2019-02-13)   3,484 views  (ดูล่าสุดเมื่อ 36 นาที)

  Elasticsearch คืออะไร ถามเมื่อ (2015-09-30)   2,573 views  (ดูล่าสุดเมื่อ 44 นาที)

  ขอวิธี ตรวจสอบว่าเป็น string หรือ int ทีค่ะ Java นะคะ ถามเมื่อ (2011-06-24)   3,593 views  (ดูล่าสุดเมื่อ 54 นาที)


 

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