เมธอด rollback() เป็นหนึ่งในเมธอดของ Python ใช้สำหรับการทำธุรกรรมฐานข้อมูล (Database Transactions)
rollback() ใช้ย้อนกลับการเปลี่ยนแปลงหรือการ commit ล่าสุดที่ทำไปที่ฐานข้อมูล หากผู้ใช้ไม่พอใจกับการเปลี่ยนแปลง หรือธุรกรรมล้มเหลว ให้ใช้ rollback() เพื่อคืนฐานข้อมูลสู่สภาพเดิมก่อน commit วิธีนี้สำคัญมากในการรักษาความสมบูรณ์ของข้อมูลเมื่อธุรกรรมล้มเหลว
ไวยากรณ์
db.rollback()
db คือออบเจ็กต์การเชื่อมต่อฐานข้อมูล
ขั้นตอนใช้ rollback() เมื่อธุรกรรมล้มเหลวในตารางด้วย MySQL ใน Python
นำเข้า MySQL Connector
สร้างการเชื่อมต่อด้วย
connect()สร้างออบเจ็กต์ cursor ด้วย
cursor()ลองรันคำสั่ง UPDATE และ commit การเปลี่ยนแปลง
หากธุรกรรมล้มเหลว ให้ rollback()
ปิดการเชื่อมต่อ
ตัวอย่าง
โค้ดลองอัปเดตอายุของนักเรียนชื่อ Inder ในตาราง STUDENT หากสำเร็จจะ commit หากล้มเหลวจะ rollback
import mysql.connector
from mysql.connector import Error
from mysql.connector import errorcode
try:
db = mysql.connector.connect(
host='localhost',
database='database_name',
user='user_name',
password='your_password'
)
cs = db.cursor()
query = "UPDATE STUDENT SET AGE = 23 WHERE Name = 'Inder'"
cs.execute(query)
# commit การเปลี่ยนแปลง
db.commit()
print("Database Updated!")
except mysql.connector.Error as error:
print("Database Update Failed!: {}".format(error))
# ย้อนกลับการเปลี่ยนแปลงเนื่องจากข้อผิดพลาด
db.rollback()
# ปิดการเชื่อมต่อ
db.close()ผลลัพธ์
หากธุรกรรมสำเร็จ:
Database Updated!
หากธุรกรรมล้มเหลว:
Database Update Failed!