MySQL事务--6个步骤
2024-01-03 06:02:00
第一步:1、开始事务
START TRANSACTION
第二步:取消手动提交事务
set autocommit=0
第三步:插入sql语句
sql语句
第四步:回滚,ROLLBACK
出错 回滚 ROLLBACK ( MYISAM不支持,引擎记得修改为InnoDB)
ROLLBACK
第五步:提交
COMMIT
第六步:恢复自动提交
set autocommit=1
//事务
// 1、开始事务
//START TRANSACTION;
sql = "START TRANSACTION";
re = mysql_query(&mysql, sql.c_str());
if (re != 0)
{
cout << "failed mysql_error" << mysql_error(&mysql) << endl;
}
//2、手动提交事务
//set auocommit=0;
sql = "set autocommit=0";
re = mysql_query(&mysql, sql.c_str());
if (re != 0)
{
cout << "failed mysql_error" << mysql_error(&mysql) << endl;
}
//3、sql语句
//插入三条语句,回滚
for (int i = 0;i < 3;i++)
{
sql = "insert into t_vedio (name) values ('test three!')";
re = mysql_query(&mysql, sql.c_str());
if (re != 0)
{
cout << "failed mysql_error" << mysql_error(&mysql) << endl;
}
}
//4、出错回滚 ROLLBACK MYISAM不支持
sql = "ROLLBACK";
re = mysql_query(&mysql, sql.c_str());
if (re != 0)
{
cout << "failed mysql_error" << mysql_error(&mysql) << endl;
}
//count=0
//插入三条语句,回滚
for (int i = 0;i <100;i++)
{
sql = "insert into t_vedio (name) values ('test three!')";
re = mysql_query(&mysql, sql.c_str());
if (re != 0)
{
cout << "failed mysql_error" << mysql_error(&mysql) << endl;
}
}
//5、COMMIT
sql = "COMMIT";
re = mysql_query(&mysql, sql.c_str());
if (re != 0)
{
cout << "failed mysql_error" << mysql_error(&mysql) << endl;
}
//6、恢复自动提交
//set auocommit=1;
sql = "set autocommit=1";
re = mysql_query(&mysql, sql.c_str());
if (re != 0)
{
cout << "failed mysql_error" << mysql_error(&mysql) << endl;
}
文章来源:https://blog.csdn.net/wjl990316fddwjl/article/details/135295580
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!