iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中有哪些事务控制语句
  • 869
分享到

MySQL中有哪些事务控制语句

2024-04-02 19:04:59 869人浏览 独家记忆
摘要

今天就跟大家聊聊有关Mysql中有哪些事务控制语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。事务sql 控制语句mysql事务遵从ACID:•

今天就跟大家聊聊有关Mysql中有哪些事务控制语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

事务sql 控制语句

mysql事务遵从ACID:

• Atomic(原子性):所有语句作为一个单元全部成功执行或全部取消。

• Consistent(一致性):如果数据库在事务开始时处于一致状态,则在执行该事务期间将保留一致状态。

• Isolated(隔离性):事务之间不相互影响。

• Durable(持久性):事务成功完成后,所做的所有更改都会准确地记录在数据库中。所做的更改不会丢失

1) 事务SQL 控制语句

• START TRANSACTioN(或BEGIN):显式开始一个新事务

• SAVEPOINT:分配事务过程中的一个位置,以供将来引用

• COMMIT:永久记录当前事务所做的更改

• ROLLBACK:取消当前事务所做的更改

• ROLLBACK TO SAVEPOINT:取消在savepoint 之后执行的更改

• RELEASE SAVEPOINT:删除savepoint 标识符

• SET AUTOCOMMIT:为当前连接禁用或启用默认autocommit 模式

2) AUTOCOMMIT 模式

如何设置 AUTOCOMMIT 模式决定了如何以及何时开始新事务。默认情况下,AUTOCOMMIT 处于全局启用状态,这意味着会强制每个 SQL 语句隐式开始一个新事务。可以通过一个选项文件全局禁用 AUTOCOMMIT,也可以通过设置 autocommit 变量为每个会话禁用它。启用 AUTOCOMMIT 会限制每个语句,并进而影响其自身事务中的事务表。这样可以有效地防止在一个事务中执行多个语句。这意味着,您将无法通过 COMMIT 或 ROLLBACK 作为一个单元提交或回滚多个语句。有时,会将这种情况误认为根本没有事务。但是,情况并非如此。启用 AUTOCOMMIT 后,每个语句仍会以原子方式执行。例如,通过在插入多个行时比较违反约束限制的效果,便可看出启用 AUTOCOMMIT 和根本不具有事务之间的差别。在非事务表(如 MyISAM)中,一旦发生错误,语句就会终止,已经插入的行会保留在该表中。而对于 InnoDB 表,已经插入的所有行都会从该表中删除,从而不会产生任何实际影响。

AUTOCOMMIT确定开始新事务的方式和时间;默认情况下, AUTOCOMMIT 模式处于启用状态:作为一个事务隐式提交每个语句;

在my.cnf中将 AUTOCOMMIT 模式设置为 0,或者SET GLOBAL AUTOCOMMIT=0;SET SESSION AUTOCOMMIT=0; SET @@AUTOCOMMIT :=0; 则禁用 AUTOCOMMIT,事务会跨越多个语句,需要使用 COMMIT 或 ROLLBACK 结束事务;

使用 SELECT 检查 AUTOCOMMIT 设置:

SELECT @@AUTOCOMMIT;

3) 隐式提交

COMMIT 语句始终会显式提交当前事务。其他事务控制语句(例如,本幻灯片列出的语句)还具有隐式提交当前事务的作用。除了这些事务控制语句之外,其他类型的语句可能也具有隐式提交并进而终止)当前事务的作用。这些语句的行为就像在执行实际语句之前发出 COMMIT 一样。此外,这些语句本身并非事务语句,也就是说,如果成功,则无法回滚。通常,数据定义语句、据访问和用户管理语句以及定语句具有这种效果。

注:有很多例外情况,而且这些语句并非都能在所有版本的服务器上导致隐式提交。但是,建议将所有非 DML 语句都视为可导致隐式提交。有关导致隐式提交的完整语句列表,请参阅《MySQL 参考手册》:Http://dev.mysql.com/doc/refman/5.6/en/implicit-commit.html

隐式提交会终止当前事务。用于隐式提交的 SQL 语句:

l  START TRANSACTION

l  SET AUTOCOMMIT = 1

导致提交的非事务语句:

l  数据定义语句(ALTER、 CREATE 和 DROP)

l  管理语句(GRANT、 REVOKE 和 SET PASSWord

l  锁定语句(LOCK TABLES 和 UNLOCK TABLES)

导致隐式提交的语句示例:

Mysql>TRUNCATE TABLE

Mysql>LOAD DATA INFILE

4) 事务存储引擎

使用 SHOW ENGINES 列出引擎特征:

mysql> SHOW ENGINES\G

********************* 2. row *********************

Engine: InnoDB

Support: DEFAULT

Comment: Supports transactions, row-level locking,

and foreign keys

Transactions: YES

XA: YES

Savepoints: YES

********************* 1. row *********************

Engine: MyISAM

Support: YES

Comment: MyISAM storage engine

Transactions: NO

XA: NO

Savepoints: NO

看完上述内容,你们对MySQL中有哪些事务控制语句有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中有哪些事务控制语句

本文链接: https://www.lsjlt.com/news/56341.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中有哪些事务控制语句
    今天就跟大家聊聊有关MySQL中有哪些事务控制语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。事务SQL 控制语句MySQL事务遵从ACID:•...
    99+
    2022-10-18
  • mysql中有哪些流程控制语句
    mysql中的流程控制语句有:1.IF语句,根据不同条件执行不同操作;2.CASE语句,多分支语句结构;3.WHILE循环语句,先判断后执行;4.LOOP循环语句,没有内置的循环条件;5.REPEAT循环语句,先执行后判断;mysql中的流...
    99+
    2022-10-03
  • Oracle_事务控制语句
    事务是对数据库操作的逻辑单位,在一个事务中可以包含一条或多条DML (数据操纵语言)、DDL (数据定义语言)和DCL (数据控制语言)语句,这些语句组成一个逻辑整体。事务的执...
    99+
    2022-10-18
  • java中有哪些流程控制语句
    java中有哪些流程控制语句?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。程序的结构分类:顺序结构:按照写代码的顺序 一次执行 选择结构:根据条件的不同有选择的执行不同的代码循...
    99+
    2023-05-31
    java 中有 ava
  • JAVA中的流控制语句有哪些
    本篇内容主要讲解“JAVA中的流控制语句有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA中的流控制语句有哪些”吧!与 C、 C++相 同 ,Java程 序 通 过 流 控 制 来 执...
    99+
    2023-06-03
  • JavaScript中有哪些循环语句和流程控制语句
    这篇文章将为大家详细讲解有关JavaScript中有哪些循环语句和流程控制语句,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。循环语句众所周知,常用的循环语句...
    99+
    2022-10-19
  • javascript条件控制语句有哪些
    javascript中的条件控制语句有:1.if语句,基于不同的条件执行不同的操作;2.switch语句,多重条件判断语句;3.while语句,先判断后循环的条件控制语句;4.for语句,先判断后循环的条件控制语句;javascript中的...
    99+
    2022-10-23
  • golang流程控制语句有哪些
    流程控制语句:1、if语句,由一个布尔表达式后紧跟一个或多个语句组成;2、“if…else”语句,else中的表达式在布尔表达式为false时执行;3、switch语句,用于基于不同条件执行不同动作;4、select语句;5、for循环语句...
    99+
    2023-05-14
    流程控制 go语言 Golang
  • php有哪些流程控制语句
    php有哪些流程控制语句?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4...
    99+
    2023-06-14
  • golang流程控制语句有哪些?
    常见的流程控制语句有if语句、for循环、switch语句、select语句、break和continue语句、goto语句。详细介绍:1、if语句: 用于条件性地执行一段代码块;2、for循环: 用于重复执行一段代码块;3、switch语...
    99+
    2023-12-21
    go语言 Golang 流程控制语句
  • MySQL 5.7 的事务控制语句的介绍
    START TRANSACTION 或 BEGIN 语句开始一个事务 COMMIT 语句提交事务,使得数据的更改永久生效 ROLLBACK 语句回滚事务,取消对数据的更改 SET autocom...
    99+
    2022-10-18
  • php中的循环控制语句有哪些
    这篇文章给大家介绍php中的循环控制语句有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常用的开发环境。二、WampServer,WampServe...
    99+
    2023-06-14
  • JAVA中的流程控制语句有哪些
    这期内容当中小编将会给大家带来有关JAVA中的流程控制语句有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。第一节 JAVA条件语句之if语句单独的if语句,语法:if(条件){条件成立时执行的代码};...
    99+
    2023-05-31
    java 流程控制语句 ava
  • MySQL中TCL事务控制语句的示例分析
    这篇文章给大家分享的是有关MySQL中TCL事务控制语句的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、事务的介绍与使用通过show engines;可以查看mysq...
    99+
    2022-10-18
  • python的流程控制语句有哪些
    python的流程控制语句有:1、if语句,根据条件执行不同的代码块;2、for循环,用于遍历一个序列或其他可迭代对象;3、while循环,当给定条件为真时,重复执行一段代码;4、break语句,用于终止当前循环,跳出整个循环;5、cont...
    99+
    2023-12-11
    python
  • Java的流程控制语句有哪些
    本篇内容介绍了“Java的流程控制语句有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!01、if-else 相关1)if 语句if 语句...
    99+
    2023-06-16
  • linux shell流程控制语句有哪些
    本篇内容主要讲解“linux shell流程控制语句有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux shell流程控制语句有哪些”吧!一、shell条件语句(if用法)if语句结...
    99+
    2023-06-09
  • MySQL语句有哪些
    这篇文章给大家分享的是有关MySQL语句有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SQL(Structured Query Language)语句,即结构化查询语言,是...
    99+
    2022-10-18
  • MySQL中有哪些declare语句
    这期内容当中小编将会给大家带来有关MySQL中有哪些declare语句,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  MySQLdeclare语句用法有哪些  (1)E...
    99+
    2022-10-18
  • MySQL中sql语句有哪些
    小编给大家分享一下MySQL中sql语句有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!以下两个表格做讲解SELECTSELECT &quo...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作