什么是mysql的事务和实现

 我来答
匿名用户
2017-12-23
展开全部

msql的一个事务的回归测试,可以自测一下,了解下事务。

举个例子:小明和小飞两个人现在手里各有¥100,突然小飞脑袋出问题了说给小明¥50,现在他们手里的钱就是(小明:¥150,小飞:¥50);这样同步就是一个事务的完成,下面是demo

/*
事务 ACID
原子性 Atomic
一致性 Consistency
隔离性 Isolation
持久性 Durability
*/

var mysql = require('mysql');
var connection = mysql.createConnection({
    host:'localhost',
    user:'root',
    password:'',
    database:'yudi'
});
 
connection.connect();
 
//开始一个事务
connection.beginTransaction(function(err){
    if(err) throw err;
    connection.query('update account1 set mny=0 where id=1',function(err,results){
        if(err){
            connection.rollback(function(){
                throw err;
            })
        throw err;
    }
 
connection.query('update account2 set mny=200 where id=1',function(err,results){
    if(err){
//回滚一个事物
    connection.rollback(function(){
    throw err;
})
    throw err;
}
//提交一个事物
connection.commit(function(err){
    if(err){
        connection.rollback(function(){
            throw err;
        })
    throw err;
}
console.log('success');
 
});
});
});
})
爱可生云数据库
2020-11-16 · MySQL开源数据库领先者
爱可生云数据库
爱可生,金融级开源数据库和数据云服务整体解决方案提供商;优秀的开源数据库技术,企业级数据处理技术整体解决方案提供商;私有云数据库云服务市场整体解决方案提供商。
向TA提问
展开全部

    1. 普通事务

    以 begin / start transaction 开始,commit / rollback 结束的事务。或者是带有保存点 savepoint 的事务。

    2. 链式事务

    一个事务在提交的时候自动将上下文传给下一个事务,也就是说一个事务的提交和下一个事务的开始是原子性的,下一个事务可以看到上一个事务的处理结果。MySQL 的链式事务靠参数 completion_type 控制,并且回滚和提交的语句后面加上 work 关键词。

    3. 嵌套事务

    有多个 begin / commit / rollback 这样的事务块的事务,并且有父子关系。子事务的提交完成后不会真的提交,而是等到父事务提交才真正的提交。

    4. 自治事务

    内部事务的提交不随外部事务的影响,一般用作记录内部事务的异常情况。MySQL 不支持自治事务,但是某些场景可以用 MySQL 的插件式引擎来变相实现。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式