Latest web development tutorials

การทำธุรกรรม SQLite

รายการ (Transaction) เป็นหน่วยงานของการทำงานบนฐานข้อมูล รายการ (Transaction) เป็นลำดับตรรกะของการทำงานหรือลำดับที่สมบูรณ์ซึ่งสามารถทำได้โดยการใช้ด้วยตนเองก็สามารถทำได้โดยอัตโนมัติโดยชนิดของโปรแกรมฐานข้อมูลบางส่วน

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

ในความเป็นจริงคุณสามารถใส่จำนวนมากของ SQLite สหพันธ์แบบสอบถามเป็นกลุ่มทั้งหมดของพวกเขาใส่กันเป็นส่วนหนึ่งของการทำธุรกรรมสำหรับการดำเนินการ

การทำธุรกรรมอสังหาริมทรัพย์

รายการ (Transaction) มาตรฐานมีดังต่อไปนี้คุณสมบัติสี่ตามปกติในกรดย่อ:

  • อะตอมมิกซิตี้ (อะตอมมิกซิตี้): เพื่อให้มั่นใจว่าทุกหน่วยงานที่อยู่ในการดำเนินงานจะเสร็จเรียบร้อยแล้วมิฉะนั้นการทำธุรกรรมจะถูกยกเลิกในกรณีที่มีความผิดก่อนที่จะดำเนินการจะถูกรีดกลับสู่สภาวะเดิม

  • ความสอดคล้อง (Consistency): ตรวจสอบว่าการเปลี่ยนสถานะของฐานข้อมูลได้อย่างถูกต้องในการทำธุรกรรมส่งเรียบร้อยแล้ว

  • การแยก (แยก): การทำธุรกรรมที่จะทำงานได้อย่างอิสระและโปร่งใส

  • ถาวร (Durability): เพื่อให้มั่นใจว่าการทำธุรกรรมที่ได้รับการส่งผลหรือผลกระทบในกรณีของความล้มเหลวของระบบยังคงมีอยู่

การควบคุมการทำธุรกรรม

ใช้คำสั่งต่อไปนี้เพื่อควบคุมการทำธุรกรรม:

  • BEGIN รายการ: เริ่มต้นการทำธุรกรรม

  • COMMIT: บันทึกการเปลี่ยนแปลงของคุณหรือคุณสามารถใช้คำสั่ง END ธุรกรรม

  • ย้อนกลับ: ย้อนกลับการเปลี่ยนแปลง

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

BEGIN คำสั่งการทำธุรกรรม

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

BEGIN;

หรือ 

BEGIN TRANSACTION;

COMMIT คำสั่ง

คำสั่ง COMMIT จะใช้ในการบันทึกการเปลี่ยนแปลงในการทำธุรกรรมฐานข้อมูลคำสั่งการทำธุรกรรมการโทร

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

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

COMMIT;

หรือ

ธุรกรรม end;

คำสั่งย้อนกลับ

คำสั่งย้อนกลับเป็นคำสั่งเพื่อยกเลิกการทำธุรกรรมไม่ได้รับการบันทึกไว้ในฐานข้อมูลของการทำธุรกรรม

คำสั่งย้อนกลับสามารถใช้ในการยกเลิกการทำธุรกรรมตั้งแต่เดือนกระทำหรือย้อนกลับคำสั่งที่ออกมาตั้งแต่

คำสั่งไวยากรณ์ย้อนกลับจะเป็นดังนี้:

ย้อนกลับ;

ตัวอย่าง

ตาราง บริษัท สมมติว่ามีการบันทึกต่อไปนี้:

ID NAME เงินเดือนอายุที่อยู่
---------- ---------- ---------- ---------- ----------
1 เปาโล 32 20,000.0 แคลิฟอร์เนีย
2 อัลเลน 25 15,000.0 เท็กซัส
เท็ดดี้ 3 23 นอร์เวย์ 20,000.0
4 มาร์ครวย 25-Mond 65,000.0
5 ดาวิด 27 85,000.0 เท็กซัส
6 คิม 22 ใต้ 45,000.0 ฮอลล์
7 เจมส์ 24 ฮุสตัน 10,000.0

ตอนนี้ขอเริ่มต้นการทำธุรกรรมและลบระเบียนจากตารางอายุ = 25 และในที่สุดเราจะใช้คำสั่งย้อนกลับเพื่อยกเลิกการเปลี่ยนแปลงทั้งหมด

SQLite> BEGIN;
SQLite> ลบออกจาก บริษัท อายุ = 25;
SQLite> ย้อนกลับ;

ตรวจสอบตาราง บริษัท ยังคงมีบันทึกต่อไปนี้:

ID NAME เงินเดือนอายุที่อยู่
---------- ---------- ---------- ---------- ----------
1 เปาโล 32 20,000.0 แคลิฟอร์เนีย
2 อัลเลน 25 15,000.0 เท็กซัส
เท็ดดี้ 3 23 นอร์เวย์ 20,000.0
4 มาร์ครวย 25-Mond 65,000.0
5 ดาวิด 27 85,000.0 เท็กซัส
6 คิม 22 ใต้ 45,000.0 ฮอลล์
7 เจมส์ 24 ฮุสตัน 10,000.0

ตอนนี้ขอเริ่มต้นการทำธุรกรรมอื่นให้ลบระเบียนจากตารางอายุ = 25 และในที่สุดเราจะใช้คำสั่ง COMMIT ที่จะกระทำการเปลี่ยนแปลงทั้งหมด

SQLite> BEGIN;
SQLite> ลบออกจาก บริษัท อายุ = 25;
SQLite> COMMIT;

บริษัท ตรวจสอบตารางบันทึกต่อไปนี้:

ID NAME เงินเดือนอายุที่อยู่
---------- ---------- ---------- ---------- ----------
1 เปาโล 32 20,000.0 แคลิฟอร์เนีย
เท็ดดี้ 3 23 นอร์เวย์ 20,000.0
5 ดาวิด 27 85,000.0 เท็กซัส
6 คิม 22 ใต้ 45,000.0 ฮอลล์
7 เจมส์ 24 ฮุสตัน 10,000.0