Transação é um conjunto de operações para trabalhar com um banco de dados (DB), combinado em um pacote atômico.
(Presume-se que você saiba o que é um banco de dados. Mas, um pouco mais tarde, haverá um link para o artigo "o que é")
Os bancos de dados transacionais (bancos de dados que funcionam por meio de transações) atendem aos requisitos do ACID, que garantem a segurança dos dados. Incluindo dados financeiros =) Portanto, os desenvolvedores os escolhem.
Vou falar sobre o que é uma transação. Como abri-lo e como fechá-lo. E por que é importante fechar a transação. E então, ao escrever consultas no banco de dados, você terá uma compreensão consciente do que está acontecendo lá, nos bastidores, e por que você precisa desse commit obrigatório após a atualização.
Conteúdo
O que é uma transação
Uma transação é um arquivo para consultas ao banco de dados. Ele protege seus dados em uma base de tudo ou nada.
Imagine que você decide enviar a um amigo 10 arquivos em um messenger. Quais são as opções:
Jogue cada arquivo separadamente.
Coloque-os no arquivo e envie o arquivo.
Parece que não há muita diferença. Mas e se algo der errado? A conexão cairá no meio, o servidor irá reiniciar ou simplesmente dará um erro ...
No primeiro caso, seu amigo receberá 9 arquivos, mas nenhum.
. . , . , . , « ».
, , ? ? ? , . ? , . , ! , , !
, :
— ?
— 10
— ? 9... , .
, . 100 2 ? « 1», « 2» , «hfdslafebx63542437457822nfhgeopjgrev0000444666589.xml» ... ! , .
! — . «, ». , , .
, . "" :
delete from 1 where = 1
insert into 2 values ('')
« » . , 1 , 2 ... ...
. 1!
-, — , . — , - . , « », , .
, . ( . connection, ). — , .
, . :
.
.
.
, . , .
, , . . . — , .
, . — .
. (, ), , -.
. Oracle , . MySql «start transaction».
2 :
COMMIT — ;
ROLLBACK — ;
, «», . , , .
, :
insert into clients (name, surname) values ('', '');
-- «» «»
, ! , select , , — ! .
! , . sql developer ( , ) select — .
, , :
insert into clients (name, surname) values ('', '');
commit;
. . . sql developer, , .
, : « » , ! ? .
. , . , . :
= «»
= «»
...
. select count — . 100 ! , . .
, - ! «» «», - . ... . rollback.
— ROLLBACK? . , . . .
. :
, «»;
495 499;
....
, . select , . «, , ? , ». .
- . . 3 , . 10 — , . , ...
. !
— , .
, (, insert , ...).
, . . ( connection) — , . — , , .
, . . :
COMMIT — ;
ROLLBACK — ;
, -, . . - . rollback, . ? - . , , .
() . — , (update, delete…) , commit /rollback — .
PS - para artigos mais úteis, olhe meu blog com a tag "útil" . E vídeos úteis estão no meu canal do youtube