transaction事务小结

本文介绍在SQL中如何正确地使用事务来管理update、insert、delete和truncate等命令,特别是如何开启事务、执行删除命令及回滚或提交事务,并提供了一些实用的提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在执行update和insert、delete、truncate命令时,特别要注意,要开启一个事务,防止执行失败。

1.开启事务
begin transaction

2.测试两条删除命令
delete 表名
truncate table 表名

3.回滚

rollback transaction


4.成功后提交事务
commit


tip:
1.开启一次事务,只能执行一次回滚,即只能执行一次rollback transaction。

2.删除整个表内容,truncate要比delete效率高。

3.truncate命令只能删除整个表内容,而不能加where条件;若表有自增ID,如果使用该命令,再次插入数据后ID从1开始自增。

4.(特别注意).truncate命令可能不能被回滚;笔者在sql server2008测试不能使用回滚,但是在sql server2014可以回滚。鉴于该命令的不确定性,如果用truncate时需要在本地测试以下,以防发生错误。

5.一个细节,但是很重要。对于事务,如果开启之后,在进行增删改(update和insert、delete、truncate)操作之后,必须马上进行提交或者回滚。因为在进行提交或回滚之前,其他用户无法对该表进行任何操作(包括查询),导致的一个问题是,如果线上网站或者游戏中需要对表进行操作也是无法进行的。

6. select @@trancount可以查看当前事务的个数。默认0是没有开启事务。拓展:select @@ROWCOUNT可以查看上一操作返回的数目,包括select

update、insert、delete(笔者在sql server2008测试该命令)。

MySQL事务处理是一种用于确保数据库操作的一致性和完整性的机制。事务是一组数据库操作,要么全部成功执行,要么全部回滚到初始状态。 在MySQL中,事务处理的关键是使用ACID属性来保证数据的一致性和可靠性: 1. 原子性(Atomicity):事务中的所有操作要么全部成功执行,要么全部失败回滚。MySQL使用日志来记录事务的操作,以便在发生故障时进行回滚。 2. 一致性(Consistency):事务开始之前和结束之后,数据库的完整性约束没有被破坏。如果事务执行过程中发生错误,所有已经执行的操作将被回滚,数据库将回到事务开始之前的状态。 3. 隔离性(Isolation):并发执行的事务之间相互隔离,每个事务都感觉不到其他事务的存在。MySQL通过锁机制来实现隔离性,保证事务之间不会相互干扰。 4. 持久性(Durability):一旦事务提交成功,其所做的修改将永久保存在数据库中,即使发生系统故障也不会丢失。 在MySQL中,可以使用以下语句来控制事务的开始、提交和回滚: 1. BEGIN或START TRANSACTION:开始一个新的事务。 2. COMMIT:提交事务,使之生效。 3. ROLLBACK:回滚事务,撤销之前的操作。 在实际应用中,事务处理可以用于处理复杂的业务逻辑,确保数据的完整性和一致性。同时,合理地使用事务可以提高数据库的性能和并发能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值