`
zhenzhujeromemessage
  • 浏览: 16320 次
文章分类
社区版块
存档分类
最新评论

MYSQL中默认隐式事务及利用事务DML

 
阅读更多

一:默认情况下 ,MySQL采用autocommit模式运行。这意味着,当您执行一个用于更新(修改)表的语句之后,MySQL立刻把更新存储到磁盘中。默认级别为不可重复读。

二:会造成隐式提交的语句
以下语句(以及同义词)均隐含地结束一个事务,似乎是在执行本语句前,您已经进行了一个COMMIT。

(1)ALTER FUNCTION, ALTER PROCEDURE, ALTER TABLE, BEGIN, CREATE DATABASE, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, DROP DATABASE, DROP FUNCTION, DROP INDEX, DROP PROCEDURE, DROP TABLE, LOAD MASTER DATA, LOCK TABLES, RENAME TABLE, SET AUTOCOMMIT=1, START TRANSACTION, TRUNCATE TABLE, UNLOCK TABLES.

(2) 当当前所有的表均被锁定时,UNLOCK TABLES可以提交事务。

(3) CREATE TABLE, CREATE DATABASE DROP DATABASE, TRUNCATE TABLE, ALTER FUNCTION, ALTER PROCEDURE, CREATE FUNCTION, CREATE PROCEDURE, DROP FUNCTION和DROP PROCEDURE等语句会导致一个隐含提交。

(4) InnoDB中的CREATE TABLE语句被作为一个单一事务进行处理。这意味着,来自用户的ROLLBACK不会撤销用户在事务处理过程中创建的CREATE TABLE语句。

事务不能被嵌套。这是隐含COMMIT的结果。当您发布一个START TRANSACTION语句或其同义词时,该COMMIT被执行,用于任何当前事务。
三:利用事务DML:
1.SET AUTOCOMMIT = {0 | 1}
2.使用START TRANSACTION,autocommit仍然被禁用,直到您使用COMMIT或ROLLBACK结束事务为止。然后autocommit模式恢复到原来的状态。
3.您也可以按照如下方法开始一项事务:
START TRANSACTION WITH CONSISTENT SNAPSHOT;
WITH CONSISTENT SNAPSHOT子句用于启动一个一致的读取,用于具有此类功能的存储引擎。目前,该子句只适用于InnoDB。该子句的效果与发布一个START TRANSACTION,后面跟一个来自任何InnoDB表的SELECT的效果一样。此称为“非一致的非锁定读取”

分享到:
评论

相关推荐

    mysql关于隐式提交的问题

    整理了一下关于mysql的前因后果,以及如何避免隐式提交

    SQL Server数据库P166 (3)ROLLBACK TRANSACTION将显式事务或隐式事务回滚到事务的结束.sql

    内容概述:SQL Server数据库相关内容,对应张磊著《SQL Server数据库应用技术项目化教程》中166页(3)ROLLBACK TRANSACTION将显式事务或隐式事务回滚到事务的结束所对应的源码。代码经个人运行后无误,如果下载后运行...

    创建隐式事务管理数据库更新

    创建隐式事务管理数据库更新

    SQL Server数据库应P166 (2)COMMIT TRANSACTION标志一个成功的隐式事务或显式事务的结束.sql

    内容概述:SQL Server数据库相关内容,对应张磊著《SQL Server数据库应用技术项目化教程》中166页(2)COMMIT TRANSACTION标志一个成功的隐式事务或显式事务的结束所对应的源码。代码经个人运行后无误,如果下载后运行...

    谈谈MySQL中的隐式转换

    工作过程中会遇到比较多关于隐式转换的案例,隐式转换除了会导致慢查询,还会导致数据不准。本文通过几个生产中遇到的案例来。 基础知识 关于比较运算的原则,MySQL官方文档的描述: ...

    MySQL事务

    在MySQL中,所有的DML操作在执行之后都会有一个commit操作[隐式的] commit的意思就是用来提交事务. DTL,数据事务语言 事务的定义: 就是指一组相关的SQL操作,我们所有的操作都是处在事务中的 注意: 在数据库中**,执行...

    MySQL的隐式类型转换整理总结

    前几天在看到一篇文章:价值百万的 MySQL 的隐式类型转换感觉写的很不错,再加上自己之前也对MySQL的隐式转化这边并不是很清楚,所以就顺势整理了一下。希望对大家有所帮助。 当我们对不同类型的值进行比较的时候,...

    JSP语法之隐式对象详解

    了解JSP 隐式对象的分类和组成 能够运用隐式对象进行JSP 编程 理解Page、Request、Session 和Application 范围的区别

    Mysql隐式类型转换原则

    本文将要为您介绍的是Mysql隐式类型转换原则,具体实现方法:  MySQL 的隐式类型转换原则:  - 两个参数至少有一个是 NULL 时,比较的结果也是 NULL,例外是使用 <=> 对两个 NULL 做比较时会返回 1,这两种...

    解析MySQL隐式转换问题

    本文通过实例代码给大家介绍了MySQL隐式转换问题,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

    MySQL隐式类型的转换陷阱和规则

    先是通过一个实例给大家讲述在MySQL隐式类型的转换时遇到的陷阱,而后给大家介绍了MySQL隐式类型的规则,对大家操作mysql隐式类型的时候具有一定的参考借鉴价值,下面来一起看看吧。

    在多层结构中利用事务处理保证数据的一致性

    摘要:先分析了数据库管理系统中的事务处理,接着分析了多层结构及其在...一致,既分别在客户端如何利用显式事务处理、在中间层如何利用隐式事务处理、在远程数据库服 务器层如何利用触发器事务处理来实现数据一致。

    大桥流量分配调控中的隐式互补问题

    大桥流量分配调控中的隐式互补问题,何炳生,邵虎,假设过江大桥上流量合理分配要由征收过桥费来实现,确定最优费用征收标准是一个(仅能对给定自变量获知函数值的)隐式互补问题。

    MySQL 5.1中文手冊

    10.2. MySQL中的字符集和校对 10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符...

    隐式调用DLL库实例

    在VC6.0中,隐式调用DLL例子。 在VC6.0中,隐式调用DLL例子。 在VC6.0中,隐式调用DLL例子。

    mysql5.1中文手册

    MySQL中的字符集和校对 10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 ...

    MySQL技术内幕 InnoDB存储引擎.pdf

    最近在学习MySQL技术内幕 InnoDB存储引擎 第2版,整理了一些文档分享出来,同时也方便以后查看。若有不当之处,烦请批评指正。 1. MySQL体系结构和存储引擎 2. InnoDB存储引擎 2.1 InnoDB体系结构 2.2 ...

    数据库文献

    SQL-Sever数据库根据运行模式将事务分为4种类型:自动提交事务、显示事务、隐式事务和批处理级事务。1. 自动提交事务:是指每条单独的语句都是一个事务;2. 显式事务:是指每个事务均以BEGIN TRANSACTION语句显式...

Global site tag (gtag.js) - Google Analytics