在autocommit=1的情况下,开启一个事务,如果里面有DDL语句,那么事务开始到DDL语句之间的DML语句都会被提交。再开启新的事务。可以从binlog中看出

session语句:

09:26:04 root@localhost:[testdb] mysql.sock>select * from t2;

+——+——–+——-+

| id | course | score |

+——+——–+——-+

| 1 | math | 0 |

| 2 | ch | 0 |

| 3 | eng | 0 |

+——+——–+——-+

3 rows in set (0.00 sec)

09:26:10 root@localhost:[testdb] mysql.sock> begin;

Query OK, 0 rows affected (0.00 sec)

09:26:18 root@localhost:[testdb] mysql.sock> delete from t2 where id=2;

Query OK, 1 row affected (0.05 sec)

09:26:30 root@localhost:[testdb] mysql.sock> alter table t2 drop column score;

Query OK, 0 rows affected (0.11 sec)

Records: 0 Duplicates: 0 Warnings: 0

09:26:43 root@localhost:[testdb] mysql.sock> delete from t2 where id=3;

Query OK, 1 row affected (0.00 sec)

09:26:53 root@localhost:[testdb] mysql.sock> delete from t2 where id=1;

Query OK, 1 row affected (0.03 sec)

09:27:30 root@localhost:[testdb] mysql.sock>rollback;

Query OK, 0 rows affected (0.00 sec)

09:27:37 root@localhost:[testdb] mysql.sock>select * from t2;

Empty set (0.00 sec)

mysqlbinlog解析:

[ root@zejin240 mysql]# mysqlbinlog –no-defaults -v –base64-output=DECODE-ROWS good.000001

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;

/*!40019 SET @@session.max_insert_delayed_threads=0*/;

/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

DELIMITER /*!*/;

# at 4

#160510 9:26:03 server id 4 end_log_pos 120 CRC32 0xfb18f530 Start: binlog v 4, server v 5.6.16-log created 160510 9:26:03 at startup

# Warning: this binlog is either in use or was not closed properly.

ROLLBACK/*!*/;

# at 120

#160510 9:26:30 server id 4 end_log_pos 194 CRC32 0x4613aabe Query thread_id=1490 exec_time=0 error_code=0

SET TIMESTAMP=1462843590/*!*/;

SET @@session.pseudo_thread_id=1490/*!*/;

SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;

SET @@session.sql_mode=1075838976/*!*/;

SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;

/*!\C utf8 *//*!*/;

SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;

SET @@session.lc_time_names=0/*!*/;

SET @@session.collation_database=DEFAULT/*!*/;

BEGIN

/*!*/;

# at 194

#160510 9:26:30 server id 4 end_log_pos 245 CRC32 0x12aee719 Table_map: `testdb`.`t2` mapped to number 100

# at 245

#160510 9:26:30 server id 4 end_log_pos 292 CRC32 0x42bb4b1e Delete_rows: table id 100 flags: STMT_END_F

### DELETE FROM `testdb`.`t2`

### WHERE

### @1=2

### @2=’ch’

### @3=0

# at 292

#160510 9:26:43 server id 4 end_log_pos 323 CRC32 0x7f4b17a2 Xid = 4683

COMMIT/*!*/;

# at 323

#160510 9:26:43 server id 4 end_log_pos 433 CRC32 0x3da26437 Query thread_id=1490 exec_time=0 error_code=0

use `testdb`/*!*/;

SET TIMESTAMP=1462843603/*!*/;

alter table t2 drop column score

/*!*/;

# at 433

#160510 9:26:53 server id 4 end_log_pos 507 CRC32 0xaf228c7f Query thread_id=1490 exec_time=0 error_code=0

SET TIMESTAMP=1462843613/*!*/;

BEGIN

/*!*/;

# at 507

#160510 9:26:53 server id 4 end_log_pos 557 CRC32 0x98b09e6b Table_map: `testdb`.`t2` mapped to number 108

# at 557

#160510 9:26:53 server id 4 end_log_pos 601 CRC32 0x56abcace Delete_rows: table id 108 flags: STMT_END_F

### DELETE FROM `testdb`.`t2`

### WHERE

### @1=3

### @2=’eng’

# at 601

#160510 9:26:53 server id 4 end_log_pos 632 CRC32 0x41e6e24f Xid = 4754

COMMIT/*!*/;

# at 632

#160510 9:27:30 server id 4 end_log_pos 706 CRC32 0x4916f7a0 Query thread_id=1490 exec_time=0 error_code=0

SET TIMESTAMP=1462843650/*!*/;

BEGIN

/*!*/;

# at 706

#160510 9:27:30 server id 4 end_log_pos 756 CRC32 0x15098e83 Table_map: `testdb`.`t2` mapped to number 108

# at 756

#160510 9:27:30 server id 4 end_log_pos 801 CRC32 0x2bc1b8aa Delete_rows: table id 108 flags: STMT_END_F

### DELETE FROM `testdb`.`t2`

### WHERE

### @1=1

### @2=’math’

# at 801

#160510 9:27:30 server id 4 end_log_pos 832 CRC32 0x9ce9b647 Xid = 4870

COMMIT/*!*/;

DELIMITER ;

# End of log file

ROLLBACK /* added by mysqlbinlog */;

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

mysql binlog DDL_mysql一个事务中有DDL语句的binlog情况相关推荐

  1. MySQL之TCL(事务控制)语句

    事务 一个或一组sql语句组成的执行单元,要么全部执行,要么全部不执行,若某一条失败,则会回滚(如:转账) 存储引擎(表类型):在mysql中的数据用不同的技术存储在文件(或内存)中.可以使用SHOW ...

  2. mysql中用于实现事务提交的语句是什么,实现事务提交的语句是什么

    在SQL语言中,实现事务的提交的语句是COMMIT,REVOKE是废除某用户或某组或所有用户的访问权限,在操作完事务时,一定要使用COMMIT语句提交事务,否则,事务操作会失败. 在SQL语言中,实现 ...

  3. mysql 导入ddl_导出数据库的DDL语句

    导出数据库的DDL语句 1. 方法1:: 使用包dbms_metadata.get_ddl 只能对一个单独对象使用,不能批量导出. select dbms_metadata.get_ddl('USER ...

  4. mysql cbo rbo_一个sql(cbo,rbo)语句的优化,谢谢

    有一个语句,使用了hint /*+rule+*/ 目前的执行计划如下: SQL_ID  2227h5k32vr2b, child number 0 -------------------------- ...

  5. mysql ddl导出_Navicat批量导出mysql的DDL语句

    工作中有的时候需要将某个库中的表.视图.函数.存储过程等创建语句导出,又不需要表中的数据.同时最好放在同一个文件里面,这样方便拷贝. 方法一:需要拷贝的创建语句条数不多,不至于让你拷到头脑发晕的地步, ...

  6. mySQL基本语法 DDL语句

    一.mySQL基本语法 二.数据库的DDL语句(数据库的定义语句)之库的操作 1.查看库 2.创建库 或者 :create database 库名; 3.查看库的字符集 4.修改库的字符集 5.删除库 ...

  7. MySQL查询建表语句ddl_oracle之 获取建表ddl语句

    在使用DIP工具初始化时遇到大量分区表,无法正常使用全同步功能,故先提取表结构,后同步数据. 以下内容转载自:http://www.cnblogs.com/andy6/p/8029334.html 经 ...

  8. mysql 126_MySQL教程126-MySQL事务隔离级别

    在 数据库事务的概念和特性 中介绍了 MySQL 事务的四大特性,其中事务的隔离性就是指当多个事务同时运行时,各事务之间相互隔离,不可互相干扰.如果事务没有隔离性,就容易出现脏读.不可重复读和幻读等情 ...

  9. ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句

    DBMS_METADATA.GET_DDL包可以得到数据库的对象的ddl脚本.如下(SQLPLUS中执行): 1.得到一个表的ddl语句: SET SERVEROUTPUT ON SET LINESI ...

最新文章

  1. Python selenium巧用Javascript脚本注入解决按钮点选问题
  2. c语言程序设计a考试题,C语言程序设计考试题(A).doc
  3. IntellijIDEA插件编写-删除/插入/替换文档内容
  4. JavaScript:this是什么?
  5. TortoiseGit之配置密钥
  6. 字符串压缩——C语言
  7. Git版本控制:Gitlab及Coding.net的使用
  8. 二叉树最小结构(C++版本)
  9. 【正则】正则表达式基础知识大全
  10. jsf+EJB开发实例
  11. Java基础逻辑面试题
  12. 淘宝首页性能优化实践
  13. PPT调整同一行字符间距的三种常用方法
  14. Mars Crowdloan 空投领取及开放查询(内附领取操作)
  15. QT各种压缩包下载地址
  16. 新版方正教务系统爬虫
  17. python删除指定字符串之间所有行_python:删除包含字符串的pandas数据帧中的所有行...
  18. 金海佳学C++primer 练习9.27
  19. linux下内存分配原因导致的Load过高
  20. Heart Disease UCI(心脏病相关数据集)

热门文章

  1. 汕头创易计算机科技,汕头文创设计下一个“爆款”在哪?汕大优秀毕业生分享创作心得...
  2. java ssm框架调用微信,微信小程序实现前后台交互(后台使用ssm框架)
  3. mysql 双机备份_mysql双机热备详解及延伸备份
  4. html5比赛策划书,FashionAI 天池竞赛 - Top5 技术方案简汇
  5. oracle导致的负载高,oracle服务器负载过高_停止RMAN备份任务
  6. 华为服务器怎么查看系统日志,查询系统操作日志(operationlog)
  7. 如何配置mysql 5.7_win7 64位下如何安装配置mysql-5.7.7-rc-winx64
  8. 计算机机房新风机管道布置要求,新风系统管道布置—新风系统管道布置连接方法介绍...
  9. winpython anaconda_Windows:安装 Anaconda《 Python:基础 》
  10. 使用计算机管理文件教后反思,五年级信息技术下册《文件和文件夹》教学设计和教学反思...