2018-07-31トランザクション保証ビジネスロジックの完全な操作
1717 ワード
取引 1 1つのビジネスロジックが複数のsqlの完了を必要とする場合、あるsql文が間違っている場合は、操作全体を に戻す必要があります.トランザクションを使用して返品機能を完了し、ビジネスロジックの正確性を保証する トランザクションの4つの特性(ACIDと略称) 原子間性(Atomicity):トランザクション内のすべての操作は、データベース内で分割できないか、すべて完了するか、 を実行しないかのいずれかです.コンシステンシ(Consistency):いくつかの並列に実行されるトランザクションで、その実行結果は、ある順序でシリアルに実行された結果と一致する必要があります. 独立性(Isolation):トランザクションの実行は他のトランザクションに干渉されず、トランザクションの実行の中間結果は他のトランザクションに対して透明である必要があります. 持続性(Durability):コミットされたトランザクションのいずれかについて、データベースに障害が発生した場合でも、トランザクションのデータベースへの変更が失われないことを保証する必要があります.
要件:トランザクション を使用するには、テーブルのタイプがinnodbまたはbdbタイプである必要があります.テーブルの作成文を表示する 変更テーブルのタイプ トランザクション文
例1ステップ1:2つの端末を開きmysqlに接続し、同じデータベースを使用して同じテーブル を操作するステップ2 ステップ3
例2ステップ1:2つの端末を開きmysqlに接続し、同じデータベースを使用して同じテーブル を操作するステップ2 ステップ3
トランザクション:ビジネスロジックの完全な操作を保証します.トランザクションの使用状況:insert,update,deleteを含むデータが変更された場合(クエリは計算されません)
show create table students;
alter table ' ' engine=innodb;
begin;
commit;
rollback;
例1
1:
select * from students;
------------------------
2:
begin;
insert into students(sname) values(' ');
1:
select * from students;
2:
commit;
------------------------
1:
select * from students;
例2
1:
select * from students;
------------------------
2:
begin;
insert into students(sname) values(' ');
1:
select * from students;
2:
rollback;
------------------------
1:
select * from students;
トランザクション:ビジネスロジックの完全な操作を保証します.トランザクションの使用状況:insert,update,deleteを含むデータが変更された場合(クエリは計算されません)