大家好,在这个话题中我将解释自动提交、提交和回滚。自动提交是一种模式,默认情况下自动提交被设置为开启,每次在msql中执行事务时该事务都会被保存。如果进行了一个事务需要撤销该事务会怎么样?例如如果不小心删除了这个表的所有行会怎么样?不要照我做,但我会给你演示。
我不小心输入了the letter from employees,但我忘记添加word子句,我所有的行都没了,如何撤销这些更改?好的,我们将把自动提交设置为关闭,将此设置设置为关闭后事物将不会自动保存,需要手动保存每一笔交易。
它创建了一个保存点,可以这么说,我将通过输入cmat来创建一个保存点,然后执行。现在我将选择我的表格,从表格名称中选择全部,然后我将继续删除所有行,从employees表中删除。我忘了添加where子句,我的整个表格都没了。
幸好我们用commit语句创建了一个保存点来撤销,现在一旦我完成了这些更改就可以执行回滚语句,这将把我当前的事物恢复到使用提交的先前保存点。现在如果我从表明中选择所有内容,表就会恢复到之前的状态。
再次说明为了保存任何更改,假设我再次删除整个表,从mpoes表中删除。如果我想保存这个更改我会提交,那么我将选择我的表格。而最后的这个更改现在已经保存了,我的整个表格都没有了。所以这就是自动提交、提交和回滚。
默认情况下自动提交被设置为开启,执行后的任何事物都会被保存。如果该模式设置为关闭,您可以手动提交任何更改,要撤销任何更改请使用回滚语句。所以这就是mysql中的自动提交、提交和回滚。