数据库中前滚、回滚什么意思
5个回答
展开全部
数据库中的undo、rollback,既撤消和回滚。首先这2个操作是针对事务来说的,事务的概念请楼主自行百度。
举一个简单的例子,A给B转账,在数据库中就需要给A,B进行update操作。这2条sql语句必须都执行或者都不执行(称为一个事务)。假如先执行B的update语句,B的金额增加了100,然后执行A的update语句,A的金额减100。如果A的余额大于100,那么2个语句没问题,但是A的余额小于100时,再减100就变成负的了,这不符合实际情况。所以第二条sql就出现无法执行,那么数据库的状态必须回到没有执行B的update语句之前。
当一个事务执行的时候,数据库会依次执行中间的sql语句,当某一条sql发生错误以后,根据事务的原子性,通过2种方式使数据库回到事务没有执行的状态。撤销就是相当于不执行commit;回滚就是执行一遍相反的操作,比如再执行B的update金额减100。
举一个简单的例子,A给B转账,在数据库中就需要给A,B进行update操作。这2条sql语句必须都执行或者都不执行(称为一个事务)。假如先执行B的update语句,B的金额增加了100,然后执行A的update语句,A的金额减100。如果A的余额大于100,那么2个语句没问题,但是A的余额小于100时,再减100就变成负的了,这不符合实际情况。所以第二条sql就出现无法执行,那么数据库的状态必须回到没有执行B的update语句之前。
当一个事务执行的时候,数据库会依次执行中间的sql语句,当某一条sql发生错误以后,根据事务的原子性,通过2种方式使数据库回到事务没有执行的状态。撤销就是相当于不执行commit;回滚就是执行一遍相反的操作,比如再执行B的update金额减100。
推荐于2018-06-01
展开全部
前滚和回滚是 SQL Server? 中的两个事务操作。
前滚-恢复。白话:还没有做,根据日志继续把它做完。
回滚-撤销。白话:已经做了,根据日志取消刚才所做的。
每个 Microsoft? SQL Server? 2000 数据库都有一个事务日志记录数据库内的数据修改,事务日志可以用于前滚和回滚操作。
前滚-恢复。白话:还没有做,根据日志继续把它做完。
回滚-撤销。白话:已经做了,根据日志取消刚才所做的。
每个 Microsoft? SQL Server? 2000 数据库都有一个事务日志记录数据库内的数据修改,事务日志可以用于前滚和回滚操作。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前滚是将未完成的操作继续完成,回滚是将执行完的操作回复过来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是把数据恢复到你操作以前的数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前滚:
未完全提交的事务,即该事务已经被执行commit命令了,只是现在该事务修改所对应的脏数据块中只有一部分被写到磁盘上的数据文件中,还有一部分已经被置为提交标记的脏块还在内存上,如果此时数据库实例崩溃了,则当数据库实例恢复时,就需要用前滚(这个机制)来完成事务的完全提交,即将先前那部分已经被置为提交标记且还在内存上的脏块写入到磁盘上的数据文件中。
回滚:
未提交的事务,即该事务未被执行commit命令。但是此时,该事务修改的脏块中也有可能一部分脏块写入到数据文件中了。如果此时数据库实例崩溃了,则当数据库实例恢复时,就需要用回滚(这个机制)来将先前那部分已经写入到数据文件的脏块从数据文件上撤销掉。
未完全提交的事务,即该事务已经被执行commit命令了,只是现在该事务修改所对应的脏数据块中只有一部分被写到磁盘上的数据文件中,还有一部分已经被置为提交标记的脏块还在内存上,如果此时数据库实例崩溃了,则当数据库实例恢复时,就需要用前滚(这个机制)来完成事务的完全提交,即将先前那部分已经被置为提交标记且还在内存上的脏块写入到磁盘上的数据文件中。
回滚:
未提交的事务,即该事务未被执行commit命令。但是此时,该事务修改的脏块中也有可能一部分脏块写入到数据文件中了。如果此时数据库实例崩溃了,则当数据库实例恢复时,就需要用回滚(这个机制)来将先前那部分已经写入到数据文件的脏块从数据文件上撤销掉。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询