创建事务的一般过程:
初始化事务,创建事务,应用SELECT语句查询数据是否被录用,提交事务
如果用户不在操作数据库完成之后执行事务提交,则系统会默认执行回滚操作。
START TRANSACTION;
另外用户可以使用BEGIN或者BEGIN WORK命令初始化事务,通常START TRANSACTION命令之后跟随的是组成事务的SQL语句。
start transaction;
2.创建事务
初始化事务成功之后,可以创建事务
3.应用select 语句查询数据是否被正确输入。
在事务成功之后,继续在命令提示符中进行查询SELECT
4.提交事务:
在用户没有提交事务之前,当其他的连接MySQL服务器时,应用SELECT查询结果时,不会显示没有提交的事务的。
用户可以使用conmmit命令来提交事务,
5.撤销事务:
撤销事务又称为事务回滚,即事务呗开启用户输入的SQL语句被执行后,如果用户想要撤销刚才的数据库操作,可以使用ROLLBACK命令进行撤销数据库中的所有的变化
rollback
在事务没有提交事务的时候,则事务默认为自动回滚状态,即不保存用户之前的任何操作。
如果执行依稀回滚操作,则在输入START TRANSACTION命令后所有的SQL语句都将执行回滚操作。
6.事务的存在周期:
事务的周期在用户的命令提示符中输入START TRANSACTION 指令开始,直至用户输入COMMIT结束。
事务不支持嵌套功能,当用户在未结束第一个事务又打开另外一个事务时,前一个事务会自动提交,所以在很多命令中会隐藏了执行COMMIT命令。
MySQL行为:
1.自动提交:
用户在执行数据库操作工程中,不需要使用START TRANSACTION语句开始事务,用COMMIT或者ROLLBACK提交事务或者执行回滚操作。如果用户希望通过控制MySQL自动提交参数,可以更改提交模式。
SET AUTCOMMIT=0;--------------------关闭自动提交功能,但关闭了这个功能之后,只有用户输入COMMIT命令后,MySQL才将数据表中的资料提交到数据库中。
2.事务的孤立级
事务具有独立的空间。
事务的孤立级在整个事务中起到了很重要的作用,如果没有事务的孤立性,不同的SELECT语句将会在同一事务的环境中检索到不同的结果,浙江导致数据的不一致。
所以孤立性强制保持每个事务的独立性,以此来保证事务中看到一致的数据。
MySQL强制保持每个事务的孤立性,以此来保证事务中看到一致的数据。
基于ANSI/ISO SQL规范,MySQL提供了4种孤立级
SERIALIZABLE(序列化)-----------serializable
REPEATABLE READ(可重读)
READ COMMITTES(提交后读)
READ UNCOMMITTED(未提交读)