本篇文章给人人带来的内容是引见MySQL什么是事件处置惩罚 ?(代码示例)。有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你们有所协助。
MySQL的事件处置惩罚
步骤:
1.开启事件 start transaction
当我们开启一个事件的时刻,我们对sql的操纵都发生在内存中,然则没有真正的反应到数据库磁盘的文件中!
2.回滚 rollback
回滚,就是恢复到事件开启之前的最原始的状况!
注重:回滚操纵会自动的封闭一个事件,假如想再次实行事件,须要从新开启事件!
3.提交 commit
事件的基本原理
一般的实行,之所以是马上实行并见效,由于默许的,MySQL对sql语句的实行是自动提交的!所以,开启一个事件的实质,就是封闭了之前的自动提交的功用,而是由用户手动提交(应用commit语句)!【相干视频教程引荐:MySQL教程】
总结事件的步骤:
1, 开启事件
2, 假如实行胜利,就提交commit
3, 假如有任何一条sql语句实行失利,则回滚rollback!
事件处置惩罚的示例:
事件处置惩罚最典范的就是借还钱,下面以张三向李四还1000元为例:
起首检察数据库中各自的钱数
下面是处置惩罚还钱事件的代码:
<?php /** * MySQL完成事件操纵 */ echo "<meta charset=utf-8>"; // 1 衔接数据库 $link = @mysql_connect('localhost','root','') or die('衔接数据库失利'); mysql_select_db('test',$link); mysql_query('set names utf8'); // 2 开启事件 mysql_query("start transaction"); //设置一个变量,用来推断一切sql语句是不是胜利 $flag = true; // 2.1实行事件中的一组sql语句 // 李四的money+1000 $sql = "update pdo set mone=money+1000 where name='李四'"; $res = mysql_query($sql); if (!$res) { //若sql语句实行失利,把$falg设置为false $flag = false; } //张三的money-1000 $sql = "update pdo set money=money-1000 where name='张三'"; $res = mysql_query($sql); if (!$res) { //若sql语句实行失利,把$falg设置为false $flag = false; } // 2.2 推断事件是不是实行胜利 if ($flag) { //一切sql语句实行胜利,把sql语句提交 mysql_query('commit'); echo "还钱胜利!"; }else{ // 如个中一条实行失利,则回滚到事件开启之前的状况 mysql_query('rollback'); echo "还钱失利!"; }
效果:
下面,我们有意把个中一个字段写错,看看事件是不是一般处置惩罚,数据库中的钱数是不是有变化!
// 李四的money+1000 $sql = "update pdo set mone=money+1000 where name='李四'"; //把moeny字段错写成mone
效果:
效果是还钱失利,而且数据库中各自的钱数没有变化,申明当某一条语句未实行胜利时,事物不会提交,而会回滚,把数据恢复到最先事件之前的原始状况,这也是运用事件的作用,即只要当事件中一切sql语句悉数实行胜利,事件才会提交,否则会回滚!
总结:以上就是本篇文章的悉数内容,愿望能对人人的进修有所协助。
以上就是MySQL什么是事件处置惩罚 ?(代码示例)的细致内容,更多请关注ki4网别的相干文章!
下一篇:C# 读取U盘序列号举行考证的示例代码【C#.Net教程】,C#,U盘序列号,验证
支付宝扫一扫打赏
微信扫一扫打赏
共 0 条评论关于"MySQL什么是事务处理 ?(代码示例)【MySQL教程】,MySQL,事务处理"
最新评论