แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่าง COMMIT และ ROLLBACK ใน SQL

COMMIT และ ROLLBACK เป็นคำสั่งการทำธุรกรรมสองรายการที่ใช้ในการทำหรือเลิกทำธุรกรรม ทรานแซคชันอาจมีลำดับของเคียวรีหรืออาจมีคำสั่งการอัพเดตที่แก้ไขฐานข้อมูล ความแตกต่างพื้นฐานระหว่าง COMMIT และ ROLLBACK นั้นอยู่ที่การทำงานของพวกเขา ถ้าการทำธุรกรรมสำเร็จแล้วคำสั่ง COMMIT จะ อนุญาตให้มีการแก้ไขโดยการทำธุรกรรมในฐานข้อมูลให้กลายเป็นการถาวร ในทางกลับกันหากการทำธุรกรรมเนื่องจากเหตุผลบางประการดำเนินการได้สำเร็จคำสั่ง ROLLBACK จะ ยกเลิกการอัปเดตทั้งหมดจากคำสั่งแรกของธุรกรรมปัจจุบัน

ให้เราคุยถึงความแตกต่างระหว่างคำสั่ง Commit และ ROLLBACK ใน SQL ด้วยความช่วยเหลือของแผนภูมิเปรียบเทียบที่แสดงด้านล่าง

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบCOMMITย้อนกลับ
ขั้นพื้นฐานCOMMIT ตรวจสอบการแก้ไขที่ทำโดยการทำธุรกรรมปัจจุบันย้อนกลับลบการแก้ไขที่ทำโดยการทำธุรกรรมปัจจุบัน
ผลหลังจากดำเนินการคำสั่ง COMMIT ธุรกรรมจะไม่สามารถย้อนกลับได้เมื่อ ROLLBACK ได้รับการดำเนินการฐานข้อมูลจะถึงสถานะก่อนหน้านั่นคือก่อนการดำเนินการของคำสั่งแรกของการทำธุรกรรม
การเกิดขึ้นCOMMIT เกิดขึ้นเมื่อทำรายการสำเร็จย้อนกลับเกิดขึ้นเมื่อการทำธุรกรรมถูกยกเลิกในช่วงกลางของการดำเนินการ
วากยสัมพันธ์COMMIT;ย้อนกลับ;

นิยามของ COMMIT

COMMIT เป็นคำสั่ง SQL ที่แสดงถึง ความ สำเร็จของการทำธุรกรรม เมื่อใดก็ตามที่การทำธุรกรรมเสร็จสิ้นการดำเนินการโดยไม่มีการขัดจังหวะใด ๆ การแก้ไขที่ทำกับฐานข้อมูลโดยการทำธุรกรรมจะกลายเป็นถาวร ซึ่งหมายความว่าฐานข้อมูลไม่สามารถกู้คืนสถานะก่อนหน้านี้ซึ่งเป็นก่อนที่จะดำเนินการตามคำสั่งแรกของการทำธุรกรรม

ไวยากรณ์ของคำสั่ง COMMIT มีดังนี้:

COMMIT;

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

ความหมายของ ROLLBACK

เช่นเดียวกับ COMMIT ROLLBACK ก็เป็นคำสั่ง SQL และมันก็ส่งสัญญาณว่าธุรกรรมนั้นยัง ไม่ เสร็จสมบูรณ์ ดังนั้นการทำธุรกรรมจะ ถูกยกเลิก เพื่อยกเลิกการเปลี่ยนแปลงที่ทำโดยการทำธุรกรรม หลังจากการดำเนินการย้อนกลับไม่มีการแก้ไขที่ทำโดยการทำธุรกรรมปัจจุบันยังคงอยู่

ไวยากรณ์ของ ROLLBACK มีดังนี้:

ย้อนกลับ;

ธุรกรรม ROLLBACK มีความจำเป็นหากเกิดข้อผิดพลาดระหว่างการดำเนินการของธุรกรรม ข้อผิดพลาดอาจเป็นความล้มเหลวของระบบไฟฟ้าดับข้อผิดพลาดในงบการทำธุรกรรมผิดพลาดของระบบ ในกรณีที่ไฟฟ้าขัดข้องหรือระบบล่ม ROLLBACK จะเกิดขึ้นเมื่อระบบรีสตาร์ทอีกครั้ง ROLLBACK สามารถเกิดขึ้นได้หาก COMMIT ยังไม่ได้ดำเนินการ

ความแตกต่างที่สำคัญระหว่าง COMMIT และ ROLLBACK ใน SQL

  1. ข้อแตกต่างที่สำคัญระหว่างคำสั่ง COMMIT และ ROLLBACK ของ SQL คือการใช้คำสั่ง COMMIT ทำให้การแก้ไขทั้งหมดที่ทำโดยธุรกรรมปัจจุบันกลายเป็นสิ่งถาวร ในทางกลับกันการดำเนินการของ ROLLBACK จะลบการปรับเปลี่ยนทั้งหมดที่ทำโดยธุรกรรมปัจจุบัน
  2. เมื่อคำสั่ง COMMIT ดำเนินการแก้ไขที่ทำโดยธุรกรรมไม่สามารถย้อนกลับได้ อย่างไรก็ตามเมื่อคำสั่ง ROLLBACK ถูกดำเนินการฐานข้อมูลจะถึงสถานะก่อนหน้า
  3. คอมมิชชันได้รับการดำเนินการเกี่ยวกับการดำเนินการที่ประสบความสำเร็จของงบการทำธุรกรรม อย่างไรก็ตามการย้อนกลับจะดำเนินการเมื่อการทำธุรกรรมไม่ได้รับการดำเนินการประสบความสำเร็จ

สรุป:

เพื่อให้แน่ใจว่าการเปลี่ยนแปลงที่ทำโดยการทำธุรกรรมจะถูกบันทึกไว้ในฐานข้อมูลอย่างถาวรให้ใช้ COMMIT หลังจากการทำธุรกรรมเสร็จสมบูรณ์ ในกรณีที่การทำธุรกรรมประสบข้อผิดพลาดใด ๆ ในขณะดำเนินการแล้วเพื่อยกเลิกการเปลี่ยนแปลงที่ทำโดยการทำธุรกรรม ROLLBACK จะถูกใช้

Top