MySQL管理实务处理
事物处理可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么全不执行。
- 事务:指一组sql语句
- 回退:指撤销指定的sql语句过程
- 提交:将未存储的sql语句结果写入数据库表
- 保留点:指事务处理过程中设置的临时占位符,可以对他发布回退,与回退到整个事务不同
开始事务
mysql> start transaction
回退事务
mysql> rollback
- 只能在一个事务内使用,即start transaction后
- 事务处理用来管理insert,update,delete语句,不能回退select语句,不能回退create和drop,事务处理块中可以使用着两条语句,如果回退执行,他们不会被撤消
mysql> select * from stu_info;
+--------+---------+-----+-------+-------+
| num | name | age | grade | socre |
+--------+---------+-----+-------+-------+
| 000001 | gushi | 23 | 1006 | 90 |
| 000002 | hualian | 21 | 1005 | 100 |
| 000004 | gushi | 16 | 1006 | 95 |
| 000009 | abc | 8 | 2004 | 0 |
+--------+---------+-----+-------+-------+
4 rows in set (0.00 sec) mysql> start transaction;
Query OK, 0 rows affected (0.00 sec) mysql> delete from stu_info;
Query OK, 4 rows affected (0.00 sec) mysql> select * from stu_info;
Empty set (0.00 sec) mysql> rollback;
Query OK, 0 rows affected (0.44 sec) mysql> select * from stu_info;
+--------+---------+-----+-------+-------+
| num | name | age | grade | socre |
+--------+---------+-----+-------+-------+
| 000001 | gushi | 23 | 1006 | 90 |
| 000002 | hualian | 21 | 1005 | 100 |
| 000004 | gushi | 16 | 1006 | 95 |
| 000009 | abc | 8 | 2004 | 0 |
+--------+---------+-----+-------+-------+
4 rows in set (0.00 sec)
使用COMMIT
MySQL语句一般都是针对数据库表执行和编写的,这是所谓的隐含提交,即提交操作是自动进行的。但是在事务处理块中提交不会自动进行,为进行明确的提交,用commit
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec) mysql> delete from stu_info where age=18;
Query OK, 5 rows affected (0.34 sec) mysql> delete from stu_info where age=20;
Query OK, 0 rows affected (0.00 sec) mysql> commit;
Query OK, 0 rows affected (0.44 sec)
最后commit语句仅在不出错时写出更改,如果第一条delete起作用,第二条delete失败,则delete不会提交,实际上他是自动被撤销的
当COMMIT或rollback语句执行后,事务会自动关闭
保留点
COMMIT或rollback撤销的是整个事务,有时需要部分提交或回退,在事务块中放适当的占位符,如果需要回退,就会退到某个占位符。
mysql> savepoint s1;
每个保留点名字唯一
mysql> rollback to s1;
- 保留点越多越好
- 保留点在事务处理完成(执行一条rollback或COMMIT)后自动释放,也可以用release savepoint 明确释放保留点
更改默认的提交行为
mysql> set autocommit=0;
执行sql语句时,该语句都是针对表执行的,而且都是立即生效,autocommit决定是否自动提交,autocommit(0)假不自动提交,直到autocommit为真才自动提交,autocommit针对每个链接而不是服务器。
MySQL管理实务处理的更多相关文章
- 使用mysql管理meta
第一部分 安装mysql 第二部分 使用mysql管理meta 安装mysql 安装 yum -y install mysql mysql-server yum方法安装需要使用网络:可以自动续传:对于 ...
- 15款最佳的MySQL管理工具和应用程序
工欲善其事,必先利其器.几乎每个开发人员都有最钟爱的 MySQL 管理工具,它帮助开发人员在许多方面支持包括 PostgreSQL,MySQL,SQLite,Redis,MongoDB 等在内的多种数 ...
- MYSQL管理之主从同步管理
原文地址:MYSQL管理之主从同步管理 作者:飞鸿无痕 MYSQL管理之主从同步管理 MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重 ...
- MySQL管理之道:性能调优、高可用与监控内置脚本
MySQL管理之道:性能调优.高可用与监控内置脚本 随书附送脚本 keepalive配置文件和脚本开源工具pssh批量管理服务器(python) 下载地址 http://files.cnblogs.c ...
- mysql 管理工具
摘自: http://www.chinaz.com/free/2009/0306/68691.shtml MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购.目前 ...
- Sequel Pro 免费的MySQL管理客戶端(有SSH部分)
官方站點:http://www.sequelpro.com Sequel Pro 的原名是 CocoaMySQL,是一个与 phpMyAdmin 類似的 MySQL 管理工具.它是由 Cocoa 和面 ...
- MySQL 管理
MySQL 管理 启动及关闭 MySQL 服务器 首先,我们需要通过以下命令来检查MySQL服务器是否启动: ps -ef | grep mysqld 如果MySql已经启动,以上命令将输出mysql ...
- 涂抹mysql笔记-mysql管理工具
五花八门的mysql管理工具<>mysql提供的命令行工具 mysql_install_db:mysql建库工具,在源码安装mysql环节我们使用过. mysql_safe:mysql启动 ...
- MySQL 管理之道读书总结
最近读了<MySQL 管理之道>一书,做了以下总结,希望对大家有所帮助.在这里非常感谢作者的辛勤付出. 影响 MySQL 性能的因素: 影响 MySQL InnoDB 引擎性能的最 ...
随机推荐
- spring4全注解web项目demo
记得没接触框架的时候,写demo测试时真的很爽,新建web项目,然后随便写写servlet随便调试 框架越来越多,配置记不得了,整合容易出问题,集成新东西越来越少了,不敢动了. 这是个spring4的 ...
- .NET实现字符串base64编码
using System; using System.Text; using System.IO; using System.Security; using System.Security.Crypt ...
- Python 基础day3
1.简述bit,byte,kb,MB,GB,TB的关系 1TB=1024GB; 1GB=1024MB ; 1MB=1024kb: 1kb=1024byte ; 1byte=8bit 2.简述as ...
- python django 创建虚拟环境
DRF---django-rest-framework: 1.通过一个案例简单回顾一下django, 一.前后端分离,不分离 不分离:前端页面的显示,都是由后端返回的,就是说后端处理了参数,数据库,之 ...
- hive中left join、left outer join和left semi join的区别
先说结论,再举例子. hive中,left join与left outer join等价. left semi join与left outer join的区别:left semi join相当 ...
- Python基础2--Python简单数据类型
python简单数据类型 1 list list的创建,使用[] a_list = [‘a’, ’b’, ‘c’] print a_list print a_list[0] #a 如果去list的最后 ...
- 实现在当前的日期上加N天
function getNewDay(dateTemp, days) { var dateTemp = dateTemp.split("-"); var nDate = new D ...
- 百度api--之导航
其实挺简单的,只要知道出发点和终点的经纬度就可以了; 百度webURLAPI : http://lbsyun.baidu.com/index.php?title=uri/api/web 这个是百度的a ...
- 【leetcode】344. Reverse String
problem 344. Reverse String solution: class Solution { public: void reverseString(vector<char> ...
- [LeetCode&Python] Problem 706. Design HashMap
Design a HashMap without using any built-in hash table libraries. To be specific, your design should ...