MySQLの-----総務

業務

サービス導入

簡単に言えば、トランザクションは、論理演算のSQL文のセット、各SQL文の構成操作のこのセット、全か成功-または障害の実装を指します。
例えば:あなたは$ 5を転送してきた、フローは次の
あなたの銀行カード5から撤退お金を、お金を残りの5-計算。
私の口座に5以上のドルへのB、私は5を受け取りました。 。+ 5つの算出し、残金
上記転送処理、対応するSQL文は次のとおりです。

update 你_account set money=money-5 where name='你';
update 我_account set money=money+5 where name='我';

トランザクション内の2つのSQL操作、操作上のお金で実行するかどうかを実行し、そうでないかのどちらかです。
これは、トランザクション(原子)の原子です。

4つの特性の総務

1.アトミック(原子性)
、トランザクションは不可分単位、いずれかのすべてのSQL操作のような発生または発生しないトランザクションです。
2.一貫性(一貫性)
トランザクションが発生し、発生する前と後に、データの整合性が一致している必要があります。
3.分離(単離)
同時複数のトランザクション間でデータが分離されているデータベースへの同時アクセスは、実行中のトランザクションが他のセッションのために、実行前に完了され、見えません。それは彼らが得る前に、あること、このトランザクションの実行中に、他の人の操作この取引の結果を確認していないのは、こうした新しいデータを取得するために実行されたトランザクションの完了として、このトランザクションの実行の内容です。
(耐久性)4.永続
トランザクションがコミットされると、データベース内のデータは、永続的な変更もあります。何かがうまくいかない場合は、トランザクションはまた、唯一の「代償総務」を介して取り消さ許可していません。

MySQLのトランザクションの取扱説明書

文法:

BEGIN或START TRANSACTION;显式地开启一个事务;
COMMIT;                  也可以使用COMMIT WORK,不过二者是等价的。COMMIT会提交事务,并使已对数据库进行的所有修改成为永久性的;
ROLLBACK;                有可以使用ROLLBACK WORK,不过二者是等价的。回滚会结束用户的事务,并撤销正在进行的所有未提交的修改;

簡単な例の総務

create table user(
id int primary key auto_increment,
name char(32),
balance int
);

insert into user(name,balance)
values
('wsb',1000),
('chao',1000),
('ysb',1000);

#原子操作
start transaction;
update user set balance=900 where name='wsb'; #买支付100元
update user set balance=1010 where name='chao'; #中介拿走10元
update user set balance=1090 where name='ysb'; #卖家拿到90元
commit;  #只要不进行commit操作,就没有保存下来,没有刷到硬盘上
 
#出现异常,回滚到初始状态
start transaction;
update user set balance=900 where name='wsb'; #买支付100元
update user set balance=1010 where name='chao'; #中介拿走10元
uppdate user set balance=1090 where name='ysb'; #卖家拿到90元,出现异常没有拿到
rollback;  #如果上面三个sql语句出现了异常,就直接rollback,数据就直接回到原来的状态了。但是执行了commit之后,rollback这个操作就没法回滚了
commit;

おすすめ

転載: www.cnblogs.com/zhufanyu/p/12129454.html
おすすめ