Latest web development tutorials

การทำธุรกรรม 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);
?>