Mysql是一种常用的关系型数据库管理系统,事务(Transaction)是其核心功能之一。事务是一组逻辑上相关的操作,要么全部成功执行,要么全部回滚(撤销),保证数据的一致性和完整性。通常情况下,事务主要用于处理INSERT、UPDATE和DELETE等DML(Data Manipulation Language)语句。然而,对于DDL(Data Definition Language)语句,如
原创
2024-02-11 09:45:24
550阅读
在ITPUB上看到有人提出了这个问题。在Sqlserver或一些其他的数据库中,DDL语句也是可以回滚的,那么Oracle为什么不能回滚DDL语句呢。 要说明这个问题,首先需要说明什么是DDL语句。DDL语句是数据定义语句,包括各种数据对象的创建、修改和删除,以及授权等操作。在Oracle中DDL语句将转化为修改数据字典表的DML语句。一个简单的修改表的DDL语句,会导致Oracle在后
转载
2023-12-05 17:33:06
163阅读
失效的几种原因:一、数据库或者数据表的存储引擎不是Innodb。 数据库与表的存储引擎必须是Innodb;因为这个存储引擎才支持事务;二、使用 出错时跳过错误(DECLARE CONTINUE HANDLE FOR SQLEXCEPTION),却没有把自动提交关闭。如果使用出错跳出(DECLARE EXIT HANDLE FOR SQLEXCEPTION),则不需要关闭自动提交。在开启事
转载
2023-07-14 17:43:38
162阅读
# 如何实现DDL回滚MySQL
## 一、流程表格
| 步骤 | 操作 | 代码示例 |
|------|----------|--------------------------|
| 1 | 创建备份表| `CREATE TABLE backup_table AS SELECT * FROM original_table` |
| 2
原创
2024-04-01 05:03:50
49阅读
数据备份和冗余的区别备份:能够防止机器故障以及人为误操作带来的数据丢失,例如将数据库文件保存在其他地方冗余:数据有多份冗余,但不等备份,只能防止机械故障还原数据的丢失,假如主备模式、数据库集群备份过程中必须考虑因素:1、数据的一致性2、服务的可用性逻辑备份和物理备份逻辑备份:备份的是建表、建库、插入等操作所执行SQL语句(DDL、DML、DCL),适用于中小型数据库,效率相对较低。mysqldum
转载
2023-12-13 08:58:47
159阅读
DDL, DML不是所有SQL都是可以自动回滚的 因为DDL没有事务性,所以DDL不能回滚。要实现自动回滚。(begin,commit,rollback),则SQL语句中只能包括DML。这样,自动化发布就会受限规范格式。故而,一刀切的办法是,假定所有SQL不支持事务,自已定义好ROLLBACK的SQL脚本,在出错时能用代码回滚,而不是依赖于数据库本身的功能。===============
转载
2023-11-03 13:43:09
432阅读
前些天在Q群里有为群友问有两个对mysql数据库的操作,一个是对某张表的数据进行删除,另一个是对另一张表的删除,两个操作加入到同一事务中,如果数据删除这步出错,事务是否会回滚?即对于表的删除会不会失效?对于表的删除操作(DDL),事务不会回滚。 查了下资料,现有如下总结: DDL:数据库定义语言,如DROP、
转载
2024-01-06 09:32:58
134阅读
1 相关知识简介1.1 DML和DDL的简介1.1.1 DML简介DML(Data Manipulation Language)数据操纵语言,用于操作数据库对象中包含的数据,操作的对象是记录。主要命令:insert、delete、update。1.1.2 DDL简介DDL(Data Definition Language)数据定义语言,主要用于定义或改变表结构。用于定义和管理数据库中的所有对象的语
转载
2023-12-15 14:59:34
94阅读
事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。ACID 原则1、 原子性(Atomic)整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执 行过程中发生错误,会被回滚(ROLLBACK)到事务开始前的状态,就像这个事务从来没有执行过。2、一致性(Consist)一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处
转载
2023-08-31 06:38:06
131阅读
1、存储引擎(处理表的处理器) 1、基本操作 1、查看所有存储引擎 mysql> show engines; 2、查看已有表的存储引擎 mysql> show create table 表名; 3、创建表指定存储引擎 create table 表名(...)engine=myisam; 4、已有表修改存储引擎 alter table 表名
转载
2024-06-30 09:07:23
943阅读
基本概念事务是指满足ACID特性的的一组操作,可以通过Commit提交事务,也可以也可以通过Rollback进行回滚。会存在中间态和一致性状态(也是真正在数据库表中存在的状态)ACIDAtomicity【原子性】:事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。回滚可以用回滚日志(undo Log)来实现,回滚日志记录着事务所执行的修改操作,在回滚时反向执行这些修改
转载
2024-03-04 15:34:18
97阅读
<span style="font-family: Arial, Helvetica, sans-serif;">Class.forName("com.mysql.jdbc.Driver");//加载相应的字节码文件,把类加载到java虚拟机的方法区中(以后会详细讲解jvm的内存模型)</span>conn = DriverManager.getConnection(url
转载
2023-08-24 16:48:16
145阅读
事务的概念事务是由一组DML语句组成,完成一个相对完整的功能,这一组DML语句要么全部执行,要么全部放弃执行。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。或者这样理解:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点
转载
2023-07-27 22:07:27
343阅读
主要内容:***数据定义语言DDL重点***数据操纵语言DML重点 数据查询语言DQL重点---事务控制语言TCL---数据库控制语言DCL---主键(primary key)---数据冗余(另外建表,把某个外建与另一个表的主键建立关系联系起来)---事务 ***数据定义语言DDL重点定义:DDL(Data Definition Language)
转载
2023-09-12 16:13:14
169阅读
文章目录1. MySQL online DDL 各版本介绍1.1 online DDL in mysql 5.51.2 online DDL in mysql5.61.3 online DDL in mysql5.7MDL-Metadata Lock1.4 pt-online-schema-change2. GH-OST工具2.1 GH-OST原理分析:2.2 GH-OST工作流程2.3 GH-
转载
2023-12-15 12:06:02
163阅读
1. 事务概述事务是区别文件系统的重要特征之一保证数据库的完整性,要么都做,要么都不做ACID原子性(Atomicity) 事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。回滚可以用回滚日志来实现,回滚日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。一致性(Consistency) 数据库在事务执行前后都保持一致性状态。在一致性状态下,所有事务对一
转载
2024-04-28 15:56:08
98阅读
在事务中,每个正确的原子操作都会被顺序执行,直到遇到错误的原子操作,此时事务会将之前的操作进行回滚。回滚的意思是如果之前是插入操作,那么会执行删 除插入的记录,如果之前是update操作,也会执行update操作将之前的记录还原因此,正确的原子操作是真正被执行过的。是物理执行。在当前事务中确实能看到插入的记录。最后只不过删除了。但是AUTO_INCREMENT不会应删除而改变值。1、为什么auto
转载
2023-06-06 10:34:35
527阅读
开篇先了解事务以及他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等。今天想跟大家一起研究下事务内部到底是怎么实现的,在讲解前我想先抛出个问题:事务想要做到什么效果?按我理解,无非是要做到可靠性以及并发处理可靠性:数据库要保证当insert或update操作时抛异常或者数据库crash的时候需要保障数据的操作
转载
2024-08-13 10:56:44
55阅读
前几天发现程序有个Bug:使用JPA已经设置了回滚,但抛出异常后,提交的事务并没有回滚。刚开始以为是JPA使用问题,debug了近2个多小时竟然找不到原因。后来上网查了一下,才发现不是程序问题(坑爹啊,看来自己对mysql还是不熟),是数据库表问题(JPA自动建表)。原因如下:mysql建表时如果指定ENGINE=MyISAM,事务是无法回滚的(MyISAM引擎本身不支持事务...
原创
2023-09-14 13:49:05
79阅读
先收集网上的一些,待仔细测试研究~~
事务是数据库更新操作的基本单位,事务回滚是指将该事务已经完成的对数据库的更新操作撤销。
所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作 单位。例如,在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。 简单举个例子就是你要同时修改数据库中两个不同表的时候,如果它们不是一个事务的话,当第一个
原创
2012-06-20 12:33:27
3425阅读