Latest web development tutorials

transacción de MySQL

operación de procesamiento de transacciones MySQL se utiliza principalmente para grande de alta complejidad de los datos,. Por ejemplo, en el sistema de gestión de personal, se quita una persona, es decir, es necesario eliminar el oficial de información básica, y el oficial también elimina la información relacionada, tales como buzón de correo, artículos, etc., por lo que la declaración de la operación de base de datos constituye una transacción !

  • Sólo en el motor de base de datos MySQL utiliza la base de datos InnoDB o mesa para apoyar las transacciones
  • Las transacciones pueden ser utilizados para mantener la integridad de la base de datos para asegurar que la mayor parte de las sentencias SQL o bien todos ejecutan o no todos
  • La gestión de transacciones para insertar, actualizar, delete

En general, la transacción debe cumplir cuatro condiciones (ACID): atomicidad (atomicidad), consistencia (estabilidad), aislamiento (aislamiento), Durabilidad (fiabilidad)

  • 1, transacción atómica: un conjunto de transacciones, o el éxito; o retirado.
  • 2. Estabilidad: datos ilegales (la restricción exterior clave y similares), la operación de retirada.
  • 3. Aislamiento: Una transacción de forma independiente. Resultados Después de una transacción, afecta a la otra transacción que se retiren las otras transacciones. 100% de la aislamiento de la transacción, la necesidad de sacrificar la velocidad.
  • 4. Fiabilidad: Después de software y hardware accidente, InnoDB datos Reconstrucción basada en tablas utilizará la modificación del archivo de registro. La fiabilidad y la velocidad no puede tener ambas, las opciones innodb_flush_log_at_trx_commit cuando decidió guardar el registro de transacciones.

En MySQL consola utiliza transacciones para operar

1, el comienzo de una transacción

start transaction

2, hacer punto de guardado

savepoint 保存点名称

3, la operación

4, se pueden deshacer, puede enviar, no hay problema, nos sometemos, hay problemas de reversión.

PHP instancia de transacción utilizado

<?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);
?>