operação MySQL
operação de processamento de transações MySQL é usado principalmente para a grande alta complexidade dos dados,. Por exemplo, no sistema de gestão de pessoal, você remover uma pessoa, que é, o que você precisa para remover o oficial de informação básica, e o oficial também eliminar informações relacionadas, tais como caixa postal, artigos, etc., de modo que a declaração operação de banco de dados constitui uma operação !
- Somente no motor de banco de dados MySQL usado banco de dados InnoDB ou mesa para suportar transações
- As transações podem ser usados para manter a integridade do banco de dados, garantir instruções SQL em lote quer todos executados ou não executados todos
- gerenciamento de transações para insert, update, delete
Geralmente, a operação deve cumprir quatro condições (ácido): Atomicidade (Atomicity), consistência (estabilidade), isolamento (isolamento), Durabilidade (confiabilidade)
- 1, transação atômica: um conjunto de operações, ou o sucesso, ou retirada.
- 2. Estabilidade: dados ilegais (a restrição chave estrangeira e semelhantes), a operação de retirada.
- 3. Isolamento: Uma operação independente. Resultados Após a transação, não afeta a outra transação, outras operações serão retirados. 100% do isolamento transacção, a necessidade de sacrificar a velocidade.
- 4. Confiabilidade: Após falha de software e hardware, InnoDB dados Reconstrução baseada em tabelas usará a modificação do arquivo de log. Confiabilidade e velocidade não pode ter ambos, opções innodb_flush_log_at_trx_commit quando decidiu salvar o registro da transação.
No MySQL console usa transações para operar
1, o início de uma transacção
start transaction
2, do ponto de salvaguarda
savepoint 保存点名称
3, a operação
4, pode ser rolada para trás, você pode enviar, não há problema, nós nos submetemos, há problemas reversão.
PHP instância de transação usado
<?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); ?>