การทำธุรกรรม MySQL
MySQL การดำเนินการประมวลผลธุรกรรมส่วนใหญ่จะใช้สำหรับขนาดใหญ่สูงสลับซับซ้อนของข้อมูล ยกตัวอย่างเช่นในระบบการบริหารงานบุคคลที่คุณเอาคนที่เป็นคุณจะต้องเอาเจ้าหน้าที่ข้อมูลพื้นฐานและเจ้าหน้าที่ยังลบข้อมูลที่เกี่ยวข้องเช่นกล่องจดหมายบทความ ฯลฯ เพื่อให้งบดำเนินงานฐานข้อมูลถือว่าการทำธุรกรรม !
- เฉพาะในเครื่องยนต์ที่ใช้ฐานข้อมูล MySQL ฐานข้อมูล Innodb หรือตารางเพื่อสนับสนุนการทำธุรกรรม
- การทำธุรกรรมที่สามารถใช้ในการรักษาความสมบูรณ์ของฐานข้อมูลเพื่อให้แน่ใจว่าเป็นกลุ่มของงบ SQL ทั้งทั้งหมดดำเนินการหรือไม่ดำเนินการทั้งหมด
- จัดการการทำธุรกรรมแทรกปรับปรุงลบคำสั่ง
โดยทั่วไปการทำธุรกรรมต้องเป็นไปตามเงื่อนไขที่สี่ (Acid): อะตอมมิกซิตี้ (อะตอมมิกซิตี้) ความสอดคล้อง (ความมั่นคง) แยก (แยก), ความทนทาน (ความน่าเชื่อถือ)
- 1, การทำธุรกรรมอะตอม: ชุดของการทำธุรกรรมหรือประสบความสำเร็จหรือถอนตัว
- 2. เสถียรภาพ: ข้อมูลที่ผิดกฎหมาย (ข้อ จำกัด ที่สำคัญต่างประเทศและชอบ) การทำธุรกรรมการถอน
- 3. การแยก: ธุรกรรมอิสระ ผลหลังจากการทำธุรกรรมมีผลกระทบต่อการทำธุรกรรมอื่น ๆ ทำธุรกรรมอื่น ๆ จะถูกถอนออก 100% ของการแยกการทำธุรกรรมที่จำเป็นที่จะต้องเสียสละความเร็ว
- 4. ความน่าเชื่อถือ: หลังจากที่ซอฟแวร์และฮาร์ดแวร์ผิดพลาด InnoDB ข้อมูลตารางการฟื้นฟูขับเคลื่อนจะใช้การปรับเปลี่ยนแฟ้มบันทึก น่าเชื่อถือและความเร็วไม่สามารถมีทั้งตัวเลือก innodb_flush_log_at_trx_commit เมื่อมันตัดสินใจที่จะบันทึกเข้าสู่ระบบการทำธุรกรรม
ใน MySQL คอนโซลใช้การทำธุรกรรมในการดำเนินงาน
1 จุดเริ่มต้นของการทำธุรกรรม
start transaction
2 ทำบันทึกจุด
savepoint 保存点名称
3 การดำเนินการ
4. สามารถรีดกลับมาคุณจะสามารถส่งไม่มีปัญหาเราส่งมีปัญหาย้อนกลับ
PHP ตัวอย่างเช่นการทำธุรกรรมที่ใช้
<?php $handler=mysql_connect("localhost","root","password"); mysql_select_db("task"); mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行 mysql_query("BEGIN");//开始事务定义 if(!mysql_query("insert into trans (id) values('2')")) { mysql_query("ROLLBACK");//判断当执行失败时回滚 } if(!mysql_query("insert into trans (id) values('4')")) { mysql_query("ROLLBACK");//判断执行失败回滚 } mysql_query("COMMIT");//执行事务 mysql_close($handler); ?>