2018-07-31トランザクション保証ビジネスロジックの完全な操作

1717 ワード

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

    例1
  • ステップ1:2つの端末を開きmysqlに接続し、同じデータベースを使用して同じテーブル
  • を操作する
      1:
    select * from students;
    ------------------------
      2:
    begin;
    insert into students(sname) values('  ');
    
    
  • ステップ2
  •   1:
    select * from students;
    
    
  • ステップ3
  •   2:
    commit;
    ------------------------
      1:
    select * from students;
    
    

    例2
  • ステップ1:2つの端末を開きmysqlに接続し、同じデータベースを使用して同じテーブル
  • を操作する
      1:
    select * from students;
    ------------------------
      2:
    begin;
    insert into students(sname) values('  ');
    
    
  • ステップ2
  •   1:
    select * from students;
    
    
  • ステップ3
  •   2:
    rollback;
    ------------------------
      1:
    select * from students;
    

    トランザクション:ビジネスロジックの完全な操作を保証します.トランザクションの使用状況:insert,update,deleteを含むデータが変更された場合(クエリは計算されません)