做网站做app什么专业,手机网站的页面大小,淘宝客网站建设的策略,德州汇泽网站建设在MySQL命令行的默认设置下#xff0c;事务都是自动提交的#xff0c;即执行SQL语句后就会马上执行COMMIT操作。因此要显式地开启一个事务需要使用命令BEGIN, START TRANSACTION, 或者执行命令SET AUTOCOMMIT0, 禁用当前会话的自动提交。每个数据库厂商自动提交的设置都会不相…在MySQL命令行的默认设置下事务都是自动提交的即执行SQL语句后就会马上执行COMMIT操作。因此要显式地开启一个事务需要使用命令BEGIN, START TRANSACTION, 或者执行命令SET AUTOCOMMIT0, 禁用当前会话的自动提交。每个数据库厂商自动提交的设置都会不相同每个DBA或开发人员需要非常明白这一点这对之后的SQL编程会有非凡的意义因此用户不能以之前的经验来判断MySQL数据库的运行方式。MySQL为开发者提供了三种类型的事务分别是扁平化事务带保存点的事务链式事务。通过带保存点的事务还可以模拟实现嵌套事务。START TRANSACTION | BEGIN显式地开启一个事务。COMMIT要想使用这个语句的最简形式只需要发出COMMIT。也可以更详细一点写为COMMIT WORK, 不过这两者几乎是等价的。COMMIT会提交事务并使得已对数据库做的修改称为永久性的。ROLLBACK要想使用这个语句的最简形式只需要发出ROLLBACK。同样地也可以写为ROLLBACK WORK但两者几乎是等价的。回滚会结束用户的事务并撤销正在进行的所有未提交的修改。SAVEPOINT identitySAVEPOINT允许在事务中创建一个保存点一个事务中可以有多个SAVEPOINT。RELEASE SAVEPOINT identity删除一个事务的保存点当没有一个保存点执行这语句时会抛出一个异常。ROLLBACK TO [SAVEPOINT] identity这个语句与SAVEPOINT命令一起使用。可以把事务回滚到标记点而不回滚在此标记点之前的任何工作。例如可以发出两调UPDATE语句后面跟一个SAVEPOINT, 然后又是两条DELETE语句。如果执行DELETE语句期间出现了某种异常情况并且捕获到这个异常同时发出了ROLLBACK TO SAVEPOINT命令事务就会回滚到指定的SAVEPOINT撤销DELETE完成的所有工作而UPDATE语句完成的工作不受影响。SET TRANSACTION这个语句用来设置事务的隔离级别。InnoDB存储引擎提供的事务隔离级别有READ UNCOMMITEDREAD COMMITTEDREPEATABLE READSERIALIZABLESTART TRANSACTION, BEGIN语句都可以在MySQL命令行下显示地开启一个事务。但是在存储过程中MySQL数据库的分析器会自动将BEGIN识别为BEGIN...END, 因此在存储过程中只能使用START TRANSACTION语句来开启一个事务。COMMIT和COMMIT WORK语句基本是一致的都是用来提交事务。不同之处在于COMMIT WORK用来控制事务结束后的行为是CHAIN还是RELEASE的。如果是CHAIN方式那么事务就变成了链事务。用户可以通过参数completion_type来进行控制该参数默认为0表示没有任何操作。当参数completion_type的值为1时COMMIT WORK等同于COMMIT AND CHAIN, 表示马上自动开启一个相同隔离级别的事务。当参数completion_type的值为2时COMMIT WORK等同于COMMIT AND RELEASE, 在事务提交后会自动断开与服务器的连接。