Transações
2014 - Diego Machado @ Sitionet
O que é ?

Sequência de operações, tratadas como um
bloco único e indivisível.
Por que ?
Transferência bancária de fundos;
Débito na conta de origem dos recursos ->
Crédito na conta de destino;
Se a primeira operação ocorrer com sucesso
e a segunda falhar, o montante de dinheiro
deixará de existir.
Vantagens ?
Prover isolamento entre acessos concorrentes
na mesma massa de dados;
Operações agrupadas em transação única;
Unicidade de chaves primárias e compostas;
ACID (Atomicidade, Consistência, Isolamento
e Durabilidade);
Como usar ?
$this->db->trans_begin();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');
if ($this->db->trans_status() === FALSE){
$this->db->trans_rollback();
} else {
$this->db->trans_commit();
}
Dúvidas ?
No MySQL, é necessário trabalhar com o
mecanismo de armazenamento InnoDB ao
invés do padrão MyISAM.
A grande maioria dos outros bancos de dados
suportam transações nativamente.

Banco de Dados - Transacoes (Database - Transactions)

  • 1.
    Transações 2014 - DiegoMachado @ Sitionet
  • 2.
    O que é? Sequência de operações, tratadas como um bloco único e indivisível.
  • 3.
    Por que ? Transferênciabancária de fundos; Débito na conta de origem dos recursos -> Crédito na conta de destino; Se a primeira operação ocorrer com sucesso e a segunda falhar, o montante de dinheiro deixará de existir.
  • 4.
    Vantagens ? Prover isolamentoentre acessos concorrentes na mesma massa de dados; Operações agrupadas em transação única; Unicidade de chaves primárias e compostas; ACID (Atomicidade, Consistência, Isolamento e Durabilidade);
  • 5.
    Como usar ? $this->db->trans_begin(); $this->db->query('ANSQL QUERY...'); $this->db->query('ANOTHER QUERY...'); $this->db->query('AND YET ANOTHER QUERY...'); if ($this->db->trans_status() === FALSE){ $this->db->trans_rollback(); } else { $this->db->trans_commit(); }
  • 6.
    Dúvidas ? No MySQL,é necessário trabalhar com o mecanismo de armazenamento InnoDB ao invés do padrão MyISAM. A grande maioria dos outros bancos de dados suportam transações nativamente.