Una transacción es un grupo secuencial de operaciones de manipulación de bases de datos que se realiza como si fuera una unidad de trabajo. En otras palabras, una transacción nunca se completará a menos que todas las operaciones del grupo sean exitosas. Si alguna operación dentro de una transacción falla, toda la transacción fallará.
De hecho, agrupará muchas consultas SQL y las ejecutará todas juntas como parte de una transacción.
Las transacciones tienen las siguientes cuatro propiedades estándar, comúnmente denominadas ACID:
Atomicidad – asegura la finalización satisfactoria de todas las operaciones dentro de la unidad de trabajo; de lo contrario, la transacción se aborta en el momento del error y las operaciones anteriores se revierten a su estado original.
Secuencia – Asegura que la base de datos cambie de estado correctamente después de una transacción confirmada con éxito.
Aislamiento – permite que las transacciones funcionen de forma independiente y transparente entre sí.
Durabilidad – asegura que el resultado o efecto de una transacción comprometida persiste en caso de falla del sistema.
En MySQL, las transacciones comienzan con una instrucción BEGIN WORK y terminan con una instrucción COMMIT o ROLLBACK. Los comandos SQLi entre las declaraciones de inicio y finalización constituyen la mayor parte de la transacción.
Estas dos palabras clave Cometer y Retroceder utilizado principalmente para transacciones MySQL.
Cuando se complete una transacción exitosa, emita un comando COMMIT para que los cambios en todas las tablas afectadas surtan efecto.
Si ocurre una falla, emita un comando ROLLBACK para devolver cada tabla a la que se hace referencia en una transacción a su estado anterior.
Puede controlar el comportamiento de una transacción estableciendo una variable de sesión denominada AUTOCOMMIT… Si AUTOCOMMIT se establece en 1 (el valor predeterminado), entonces cada instrucción SQL (ya sea dentro de una transacción o no) se considera una transacción completada y se confirma de manera predeterminada cuando finaliza. Cuando AUTOCOMMIT se establece en 0, cuando emite SET AUTOCOMMIT = 0, la serie subsiguiente de instrucciones actúa como una transacción y no se compromete ninguna acción hasta que se emita una instrucción COMMIT explícita.
Puede ejecutar estos comandos SQL en PHP usando mysqli_query () función.
Esta secuencia de eventos es independiente del lenguaje de programación utilizado; la ruta lógica se puede crear en cualquier idioma que use para construir su aplicación.
Puede ejecutar estos comandos SQL en PHP usando mysqli_query () función.
Inicie la transacción ingresando el comando SQL EMPEZAR A TRABAJAR.
Ejecute uno o más comandos SQL como SELECT, INSERT, UPDATE o DELETE.
Compruebe si hay algún error y si todo coincide con sus requisitos.
Si hay algún error, emita el comando ROLLBACK; de lo contrario, emita el comando COMMIT.
No puede utilizar transacciones directamente, puede, pero no serán seguras ni garantizadas. Si planea usar transacciones en la programación MySQLi, necesita crear sus tablas de una manera especial. Hay muchos tipos de tablas que admiten transacciones, pero la más popular es InnoDB…
El soporte para tablas InnoDB requiere una opción de compilación específica al compilar MySQLi desde la fuente. Si su versión de MySQLi no es compatible con InnoDB, solicite a su ISP que cree una versión de MySQLi que admita los tipos de tabla InnoDB, o descargue e instale la distribución binaria MySQL-Max para Windows o Linux / UNIX y trabaje con el tipo de tabla en su entorno de desarrollo.
Si su instalación de MySQLi admite tablas InnoDB, simplemente agregue TIPO = InnoDB definición a la declaración de crear una tabla. Por ejemplo, el siguiente código crea una tabla InnoDB llamada tutorials_innodb –
[email protected]# mysql -u root -p; Enter password:******* mysql> use TUTORIALS; Database changed mysql> create table tutorials_innodb -> ( -> tutorial_author varchar(40) NOT NULL, -> tutorial_count INT -> ) TYPE = InnoDB; Query OK, 0 rows affected (0.02 sec)
Consulte el siguiente enlace para obtener más información sobre: InnoDB
Puede utilizar otros tipos de tablas como MELLIZOS o BDB, pero depende de su instalación si admite estos dos tipos.
🚫