MySQLのトランザクション
MySQLのトランザクション処理動作は、主にデータの大きな、高い複雑性のために使用されます。 たとえば、人事管理システムでは、あなたが人を削除、つまり、あなたは基本的な情報官を削除する必要があり、データベース操作文は、トランザクションを構成するよう担当者はまた、などのメールボックス、記事、として、関連情報を削除します!
- 唯一のMySQLのデータベースエンジンでトランザクションをサポートするInnoDBデータベースやテーブルを使用
- トランザクションは、SQL文の大部分は、すべての実行またはすべての実行されないいずれかのことを確実にするために、データベースの整合性を維持するために使用することができ
- 挿入、更新、削除文のトランザクション管理
一般的に、トランザクションが満たさなければならない4つの条件(ACID):アトミック(原子性)、一貫性(安定性)、絶縁(アイソレーション)、耐久性(信頼性)
- 1、 アトミックトランザクション:トランザクションのセット、または成功;または撤回。
- 2. 安定性:不正なデータ(外部キー制約など)、出金取引。
- 3. 単離:独立したトランザクション。 取引後の結果は、他のトランザクションに影響を与え、他のトランザクションは撤回されます。 トランザクション分離の100%、速度を犠牲にする必要があります。
- 4. 信頼性:ソフトウェアとハードウェアのクラッシュの後、InnoDBのデータテーブル駆動型の復興は、ログファイルの変更を使用します。 それは、トランザクション・ログを保存することを決めたときの信頼性と速度は、innodb_flush_log_at_trx_commitオプションの両方を持つことはできません。
MySQLではコンソールが動作するようにトランザクションを使用しています
1、トランザクションの開始
start transaction
2、ポイントを保存しません
savepoint 保存点名称
3、操作
4、ロールバックすることができ、あなたは、何の問題を提出することはできません、我々は提出し、問題があるにロールバックされています。
PHP使用トランザクションインスタンス
<?php $handler=mysql_connect("localhost","root","password"); mysql_select_db("task"); mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行 mysql_query("BEGIN");//开始事务定义 if(!mysql_query("insert into trans (id) values('2')")) { mysql_query("ROLLBACK");//判断当执行失败时回滚 } if(!mysql_query("insert into trans (id) values('4')")) { mysql_query("ROLLBACK");//判断执行失败回滚 } mysql_query("COMMIT");//执行事务 mysql_close($handler); ?>