1.使用show engines 命令确定系统中是否有任何事务存储引擎可用以及哪个是默认引擎。

2.使用set autocommit 语句启用autocommit。

3.为使用world数据库做准备,确认city表使用事务存储引擎innodb。

4.使用start transaction 语句显式启动新事务。

5.删除一行。

6.使用rollback语句回滚打开的事务。

1.

mysql> show engines\G
*************************** 1. row ***************************Engine: PERFORMANCE_SCHEMASupport: YESComment: Performance Schema
Transactions: NOXA: NOSavepoints: NO
*************************** 2. row ***************************Engine: CSVSupport: YESComment: CSV storage engine
Transactions: NOXA: NOSavepoints: NO
*************************** 3. row ***************************Engine: MRG_MYISAMSupport: YESComment: Collection of identical MyISAM tables
Transactions: NOXA: NOSavepoints: NO
*************************** 4. row ***************************Engine: BLACKHOLESupport: YESComment: /dev/null storage engine (anything you write to it disappears)
Transactions: NOXA: NOSavepoints: NO
*************************** 5. row ***************************Engine: MyISAMSupport: YESComment: MyISAM storage engine
Transactions: NOXA: NOSavepoints: NO
*************************** 6. row ***************************Engine: MEMORYSupport: YESComment: Hash based, stored in memory, useful for temporary tables
Transactions: NOXA: NOSavepoints: NO
*************************** 7. row ***************************Engine: ARCHIVESupport: YESComment: Archive storage engine
Transactions: NOXA: NOSavepoints: NO
*************************** 8. row ***************************Engine: InnoDBSupport: DEFAULTComment: Supports transactions, row-level locking, and foreign keys
Transactions: YESXA: YESSavepoints: YES
*************************** 9. row ***************************Engine: FEDERATEDSupport: NOComment: Federated MySQL storage engine
Transactions: NULLXA: NULLSavepoints: NULL
9 rows in set (0.00 sec)

2.

mysql> set autocommit = 1;
Query OK, 0 rows affected (0.00 sec)mysql> select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
|            1 |
+--------------+
1 row in set (0.00 sec)

3.

mysql> use world
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changedmysql> show create table city\G
*************************** 1. row ***************************Table: city
Create Table: CREATE TABLE `city` (`ID` int(11) NOT NULL AUTO_INCREMENT,`Name` char(35) NOT NULL DEFAULT '',`CountryCode` char(3) NOT NULL DEFAULT '',`District` char(20) NOT NULL DEFAULT '',`Population` int(11) NOT NULL DEFAULT '0',PRIMARY KEY (`ID`),KEY `CountryCode` (`CountryCode`),CONSTRAINT `city_ibfk_1` FOREIGN KEY (`CountryCode`) REFERENCES `country` (`Code`)
) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

4.

mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)

5.

mysql> select * from city where name = 'manta';
+-----+-------+-------------+----------+------------+
| ID  | Name  | CountryCode | District | Population |
+-----+-------+-------------+----------+------------+
| 600 | Manta | ECU         | Manab铆   |     164739 |
+-----+-------+-------------+----------+------------+
1 row in set (0.01 sec)mysql> delete from city where name = 'manta';
Query OK, 1 row affected (0.02 sec)mysql> select * from city where name = 'manta';
Empty set (0.00 sec)mysql> rollback;
Query OK, 0 rows affected (0.02 sec)mysql> select * from city where name = 'manta';
+-----+-------+-------------+----------+------------+
| ID  | Name  | CountryCode | District | Population |
+-----+-------+-------------+----------+------------+
| 600 | Manta | ECU         | Manab铆   |     164739 |
+-----+-------+-------------+----------+------------+
1 row in set (0.01 sec)

转载于:https://www.cnblogs.com/tomatoes-/p/6024445.html

【练习】使用事务控制语句相关推荐

  1. MySQL 学习笔记(9)— 事务控制语句、事务属性以及并发和隔离级别

    1. 事务概念 事务处理(transaction processing)可以用来维护数据库的完整性,它保证成批的 MySQL 操作要么完全执行,要么完全不执行. 下面是关于事务处理需要知道的几个术语: ...

  2. 事务控制语句,begin,rollback,savepoint,隐式提交的SQL语句

    事务控制语句 在MySQL命令行的默认设置下,事务都是自动提交的,即执行SQL语句后就会马上执行COMMIT操作.因此开始一个事务,必须使用BEGIN.START TRANSACTION,或者执行SE ...

  3. MySQL事务控制语句

    在mysql命令行的默认下,事务都是自动提交的,sql语句提交后马上会执行commit操作.因此开启一个事务必须使用begin,start transaction,或者执行 set autocommi ...

  4. mysql begin rollback_事务控制语句,begin,rollback,savepoint,隐式提交的SQL语句

    事务控制语句 在MySQL命令行的默认设置下,事务都是自动提交的,即执行SQL语句后就会马上执行COMMIT操作.因此开始一个事务,必须使用BEGIN.START TRANSACTION,或者执行SE ...

  5. MySQL(InnoDB剖析):42---事务之(事务控制语句:begin、commit、rollback、savepoint、transaction)

    一.事务的自动提交 默认情况下,没有使用begin显式开启事务,事务都是自动提交的 autocommit变量 该变量用于控制SQL语句是否自动提交(auto commit) 默认值为1,表示自动提交 ...

  6. Oracle事务控制语句

    在Oracle 中,事务是原子的,要么全部提交包含在事务中的所有语句(永久的),要么所有语句回滚.这种保护也扩展到单条语句.一条语句要么完全成功执行,要么完全回滚.注意,这里所说的是语句问滚.一条语句 ...

  7. mysql的事务语句_MySQL提供的事务控制语句

    在MySQL命令行的默认设置下,事务都是自动提交的,即执行SQL语句后就会马上执行COMMIT操作.因此要显式地开启一个事务需要使用命令BEGIN, START TRANSACTION, 或者执行命令 ...

  8. MySQL中事务控制语句_Mysql事务控制语言

    什么叫做事务? 现在先假设这样一个场景: 小明和小花是一对恋人:他们分处不同的城市: 某天,iphone7出来了,小花想要一个,但肾以用完,需要向小明借钱5000,于是小明开始向小花汇款: 不管小明通 ...

  9. MySQL 事务控制语句(TCL)

    什么是事务? 一个或者一组 sql 语句组成一个执行单元,这个执行单元要么全部执行,要么全部都不执行,在这个单元中每个 sql 语句都是相互依赖的.整个单元作为一个不可分割的整体,如果单元中的某条 s ...

最新文章

  1. 转: GridView:当鼠标滑过,行的背景颜色发生变化
  2. 华为9.0系统机器一键激活xposed框架的流程
  3. linux命令之less命令
  4. Python安装第三方包package
  5. 数据结构——Java Stack 类
  6. Rancher添加主机docker命令
  7. 节后的第一个周末,来领取一个Ipad吧!真香!
  8. java如何对List集合中的元素进行排序(请收藏)
  9. oracle预备份,oracle自动备份
  10. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(十一)——带隙基准
  11. 字体靠右代码_html中怎么把文字往右移
  12. 绕过cdn探测真实ip方法大全
  13. android毫秒数转换为时分秒,如何将毫秒转换成单独的时分秒的形式?
  14. 【矩阵论】线性空间与线性变换(1)
  15. (数论)[SDOI2008]沙拉公主的题目描述
  16. 运行vue项目时,如果一直报eslint语法错误的解决方案
  17. 程序员面试时候出的一些逻辑问题
  18. php 正文提取算法,基于机器学习的网页正文提取方法
  19. 字典树模板及讲解 http://www.cnblogs.com/tanky_woo/archive/2010/09/24/1833717.html
  20. mac中linux 命令

热门文章

  1. 【计算机网络】分层结构
  2. mysql 整个数据库_mysql 整个数据库
  3. android 日期时间类,Android 时间与日期操作类
  4. java set的first_Java Pair.setFirst方法代码示例
  5. java字符串是不是整数的函数_java判断字符串是否为整数的方法
  6. python输入流和输出流_python读写gbk、utf-8等输入输出流
  7. cpu开核_电脑魔改篇——CPU散热器
  8. POJ3614防晒霜 这个贪心有点东西(贪心+优先队列)
  9. SpringBoot入门详解源码分析
  10. 深入浅出深度学习(四)概率统计基础