浅谈数据库——事务(mysql)

  


<强>,事务其实是一组对数据库增删改操作的组合,可以这样来理解,当你往某个人身上打1000元的时候,在数据库中会发生两个改变,一个是你的钱减少了,另一个是那个人的钱增加了,这两个操作必须同时满足,不然问题就大了,怎样保证两个操作全部执行,这就需要mysql事务的支持。

<强>

<强> mysql是支持事务的,但首先确认你是InnoDB存储引擎

<强> 浅谈数据库——事务(mysql)



<强>

set 自动操作=0;//这条命令用来取消mysql的自动提交。   开始;//事务开始。   savepoint  pointname;//设立存储点,设立多个可以使用滚返回到某一个上。   rollback  pointname;//返回到某个点。   回滚;//不使用点则返回到开始。   提交;//如果可以提交则用提交提交。

使用显示变量如自动提交,可以查看当前自动操作的状态


下面是我在mysql下执行的测试:

浅谈数据库——事务(mysql)

浅谈数据库——事务(mysql)




这里的my_sql.h只给出了关于事务这部分的代码(关于数据库的所有操作的代码会在后面的手动搭建   http服务器的博客中给出)。 my_sql.h ,,   ,13,,,,}   ,14日,,,,bool  HttpSql: mysql_start ()   ,15,,,,{   ,16岁,,,,,,,,如果(mysql_query (mysql, SET  autocommit=0)==0)   ,17岁,,,,,,,,{   ,18岁,,,,,,,,,,,,cout<& lt;“start 成功”& lt; & lt; endl;   ,19岁,,,,,,,,,,,,return 真实;   ,20,,,,,,,,}   ,21岁,,,,,,,,else  {   ,22岁,,,,,,,,,,,,return 假;   ,23岁,,,,,,,,}   ,24   ,25岁,,,,}   ,26岁,,,,bool  HttpSql: mysql_begin ()   ,27,,,,{   ,28岁,,,,,,,,如果(mysql_query (mysql,“开始”)==0)   ,29岁,,,,,,,,{   ,30岁,,,,,,,,,,,,cout<& lt;“begin 成功”& lt; & lt; endl;   ,31岁,,,,,,,,,,,,return 真实;   ,32岁,,,,,,,,}   ,33岁,,,,,,,,其他的{   ,34岁,,,,,,,,,,,,return 假;   ,35岁,,,,,,,,}   ,36,,,,}   ,37岁,,,,bool  HttpSql: mysql_commit ()   ,38岁,,,,{   ,39岁,,,,,,,,如果(mysql_query (mysql,“提交”)==0)   ,40岁,,,,,,,,{   ,41岁,,,,,,,,,,,,cout<& lt;“commit 成功”& lt; & lt; endl;   ,42岁,,,,,,,,,,,,return 真实;   ,43岁,,,,,,,,}   ,44岁,,,,,,,,其他的{   ,40岁,,,,,,,,{   ,41岁,,,,,,,,,,,,cout<& lt;“commit 成功”& lt; & lt; endl;   ,42岁,,,,,,,,,,,,return 真实;   ,43岁,,,,,,,,}   ,44岁,,,,,,,,其他的{   ,45岁,,,,,,,,,,,,return 假;   ,46岁,,,,,,,,}   ,47岁,,,,}   ,48岁,,,,bool  HttpSql: mysql_rollback ()   ,49,,,,{   ,50岁,,,,,,,,如果(mysql_query (mysql,“回滚”)==0)   ,51岁,,,,,,,,{   ,52岁,,,,,,,,,,,,cout<& lt;“rollback 成功”& lt; & lt; endl;   ,53岁,,,,,,,,,,,,return 真实;   ,54岁,,,,,,,,}   ,55岁,,,,,,,,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

浅谈数据库——事务(mysql)