MySQL存储过程之事务管理】的更多相关文章

原文链接:http://hideto.iteye.com/blog/195275 MySQL存储过程之事务管理 ACID:Atomic.Consistent.Isolated.Durable 存储程序提供了一个绝佳的机制来定义.封装和管理事务. 1,MySQL的事务支持 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关: MyISAM:不支持事务,用于只读程序提高性能 InnoDB:支持ACID事务.行级锁.并发 Berkeley DB:支持事务 隔离级别: 隔离级别决定了…
相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过制定存储过程的名字并给出参数(如果该存储过程带有参数) 来执行它.存储过程是数据库中 的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程. 一个存储过程是一个可编程的函数,它在数据…
mysql存储过程之事务篇 事务的四大特征: ACID:Atomic(原子性).Consistent(一致性).Isolated(独立性).Durable (持久性) MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关: sql代码  1. MyISAM:不支持事务,用于只读程序提高性能 2. InnoDB:支持ACID事务.行级锁.并发 3. Berkeley DB:支持事务 事务隔离级别标准: ANSI(美国国家标准学会)标准定义了4个隔离级别,MySQL的InnoDB都…
1.什么是存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要对象. 2.存储过程的优点 (1)存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度. (2)当对数据库进行复杂操作时(如对多个表…
有这样一个需求.要求在mysql存储过程中使用到事务,并且运行的是动态的sql语句 代码例如以下: BEGIN DECLARE in_data TEXT; /** 标记是否出错 */ DECLARE errno INT DEFAULT '0'; /** 假设出现sql异常.则将t_error设置为1后继续运行后面的操作 */ DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK;SET errno = 1; END; START TRA…
当前在开发ERP系统,使用到的数据库为Mysql.下面介绍下如何开启事务,以及事务隔离的机制 : 1. 检查当前数据库使用的存储引擎. show engines; 2. 修改前my.ini中的文件如下: 3. 修改my.ini的文件如下. 3.1 修改了默认的存储引擎 3.2 增加了mysql数据库的事务隔离级别, 如果不添加默认是REPEATABLE-READ. 4. 只需要重启mysql的服务即可. net stop mysql net start mysql 5. 再次查询show eng…
本文目录:       1.使用JDBC处理大数据        2.使用JDBC处理大文本        3.使用JDBC处理二进制数据        4.Oracle中大数据处理        5.使用JDBC进行批处理        6.采用Statement.addBatch(sql)方式实现批处理的优缺点       7.实现批处理的第二种方式:PreparedStatement.addBatch()        8.采用PreparedStatement.addBatch()实现批…
将会用到的几个表 mysql> DESC products; +------------+--------------+------+-----+---------+----------------+ | Field      | Type         | Null | Key | Default | Extra          | +------------+--------------+------+-----+---------+----------------+ | prod_id…
-- 1.DECLARE EXIT HANDLER FOR SQLEXCEPTION 语句后面可以跟一个 begin end的复合语句块,也可以直接跟一个简单语句例如 :DECLARE EXIT HANDLER FOR SQLEXCEPTION v_succ=0; -- 2.EXIT会在执行异常后执行执行 FOR SQLEXCEPTION 后的语句或块而整个停止下来:CONTINUE选项会在异常后继续执行,从而将id为2的记录写入到数据库中. DROP PROCEDURE IF EXISTS p…
create procedure sp_sw2() begin declare error int default 0; declare continue handler for SQLEXCEPTION set error=1; START TRANSACTION; insert into t_student values('100','20169998','段天德1','男',20,'信息息'); insert into t_student values(1,'20169999','段天德1…
1.前言 前面具体讲了MySQL中的锁实现的方式,解释了是如何保证数据在并发情况下的可靠性,并提到了事务REPETABLE READ和READ COMMITTED,解释了一下这两种事务的不同.本章讲具体就事务的实现过程进行记录,扫除这块让人疑惑的知识点. 事务是数据库区别于文件系统的一个重要特性之一.文件系统中,如果写文件时系统崩溃了,可能文件就被损坏了.虽然有机制将一个文件回退到某个时间点,但对于文件同步问题就无能为力了.事务会把数据从一种一致性状态转换成另一种一致性状态.数据库提交时,要不都…
springboot+druid+mybatis+mysql+多数据源事务管理 分布式事务在java中的解决方案就是JTA(即Java Transaction API):springboot官方提供了 Atomikos or Bitronix的解决思路:其实,大多数情况下很多公司是使用消息队列的方式实现分布式事务.这里分享的是Atomikos 的简单事务管理. 项目依赖 pom.xml中添加atomikos的springboot相关依赖: <!--分布式事务管理器--> <depende…
一.JDBC常用的API深入详解及存储过程的调用 相关链接:Jdbc调用存储过程 1.存储过程(Stored Procedure)的介绍 我们常用的操作数据库语言SQL语句在执行的时候需要先编译,然后执行,而存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应…
存储过程使用SQLException捕获SQL错误,然后处理: 我们可以在MySQL存储过程中捕获SQL错误,然后通过事务判断,回滚(ROLLBACK)还是提交(COMMIT). CREATE PROCEDURE proc( ) BEGIN ; ; START TRANSACTION; INSERT INTO test VALUES(NULL, 'test 001'); ', 'test 002'); THEN ROLLBACK; ELSE COMMIT; END IF; select t_er…
利用Maven来管理项目中的JAR包,同时使用Spring在业务处理层进行事务管理.数据库使用MySq,数据处理层使用Spring和Mybatis结合. 本案例代码主要结构如图: 1.数据库脚本 -- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` (   `id` …
在asp.net结合mysql的开发中,我平时用到的事务处理是 使用 TransactionOptions  来进行处理 TransactionOptions transactionOption = new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted, //设置事务隔离级别 Timeout = new TimeSpan(0, 5, 10) // 设置事务超时时间为5分10秒 }; using (Transa…
1.MySQL 版本 mysql> select version(); +------------+ | version() | +------------+ -log | +------------+ row in set (0.00 sec) 2.创建测试表 mysql)); Query OK, rows affected (0.29 sec) mysql> show table status like 'test_trans%'; +------------+--------+-----…
create triggr triafterinsertcmdlog after insert on cmd_log FOR EACH ROW trigger_body .#NEW : 代表新的记录 .#OLD : 代表老的记录 #准备表 CREATE TABLE CMD ( id INT PRIMARY KEY auto_increment, user char(32), priv char(10), cmd char(64), sub_time datetime, #提交时间 success…
本文内容: 什么是事务管理 事务管理操作 回滚点 默认的事务管理 首发日期:2018-04-18 什么是事务管理: 可以把一系列要执行的操作称为事务,而事务管理就是管理这些操作要么完全执行,要么完全不执行(很经典的一个例子是:A要给B转钱,首先A的钱减少了,但是突然的数据库断电了,导致无法给B加钱,然后由于丢失数据,B不承认收到A的钱:在这里事务就是确保加钱和减钱两个都完全执行或完全不执行,如果加钱失败,那么不会发生减钱). 事务管理的意义:保证数据操作的完整性. mysql中并不是所有的数据引…
MySQL 中,单个 Store Procedure(SP) 不是原子操作,而 Oracle 则是原子的.如下的存储过程,即使语句2 失败,语句 1 仍然会被 commit 到数据库中: create table testproc(id int(4) primary key, name varchar(100)); CREATE PROCEDURE test_proc_ins( IN i_id INT, IN i_name VARCHAR(100) ) BEGIN INSERT INTO tes…
存储过程是:通过一系列的SQL语句, 根据传入的参数(也可以没有), 通过简单的调用, 完成比单个SQL语句更复杂的功能, 存储在数据库服务器端,只需要编译过一次之后再次使用都不需要再进行编译.主要对存储的过程进行控制. 事务是一系列的数据更改操作组成的一个整体.一旦事务中包含的某操作失败或用户中止,用户可以控制将事务体中所有操作撤消,返回事务开始前的状态.事务中的操作是一个整体,要么整体完成,要么全部不做.从而保证了数据的完整性.Mysql中,MyISAM存储引擎不支持事务,InnoDB支持.…
一 视图 视图是一个虚拟表(非真实存在),是跑到内存中的表,真实表是硬盘上的表.使用视图我们可以把查询过程中的临时表摘出来,保存下来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用. 1.创建视图#语法:CREATE VIEW 视图名称 AS SQL语句 create view teacher…
事务就是一组原子性的SQL查询,或者说一个独立的工作单元.如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组的全部语句,如果其中有任何一条语句因为崩溃或者其他原因无法执行,那么所有的语句都不会执行.(事务内部中的语句要么全执行,要么全不执行) 除非系统通过严格的ACID测试,否则空谈事务的概念是不够的. 原子性(Atomicity)一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操…
知识点五:MySQL存储过程之定义条件和处理过程及存储过程的管理(11,12) 定义条件和处理: 条件的定义和处理可以用来定义在处理过程中遇到的问题时相应的处理步骤. DECLARE CONTINUE HANDLER FOR SQLSTATE  ‘错误代码值’SET @变量=变量值 存储过程的管理: 存储过程的修改: ALTER {PROCEDURE | FUNCTION} sp_name [characteristic …] characteristic:  {CONTAINS SQL | N…
事务,是在数据库中用于保证数据正确性的一种机制,涉及到很多概念以及不同的情况,这里做一个总结 相关概念 事务四特性(ACID) 原子性(Atomicity,或称不可分割性):要么全部完成或者全部不完成,错误是会发生回滚,这个要求两条相关的操作,就像情侣一样,要么一起海誓山盟,一个发生意外,另外一个也挂了 一致性(Consistency):操作完成后和原本想的结果一样,不能对数据完整性造成破坏 隔离性(Isolation,又称独立性):可以同时开启多个事务,为避免出现错误,针对这个问题制定了事务在…
事务  致命三问 什么是事务:开启了一个包含多条SQL语句的事务,这些SQL语句要么都执行成功,要么有别想成功:例如A向B转账,二人账户并不属于一家银行,在转账过程中由于网络问题,导致A显示转账 成功,二B账户显示并未到账的信息不一致错误,此时如果是开启了一个事务,由于两条信息不一致将视为操作失败. 事务的作用:保证数据操作的安全性. 事务的四大属性ACID: 原子性(atomicity).一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做. 一致性(consistency…
函数 MySQL中提供了许多内置函数: 内置函数 一.数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值. 二.聚合函数(常用于GROUP BY从句的SELECT查询中) AVG(col)返回指定列的平均值 COUNT(col)返回指定列中非NULL值的个数 MIN(col)返回指定列的最小值 MAX(col)返回指定列的最大值 SUM(col)返回指定列的所有值之和 G…
视图 1.什么是视图? 视图就是通过查询得到的一张虚拟表,然后保存下来,下次可直接使用 2.为什么要使用视图? 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图? create view 表1_表2 as select * from 表1 inner join 表2 on 条件; 例: create view teacher_course as select * from teacher inner join course on teacher.tid = course.teache…
事务 什么是事务? 事务是指一些SQL语句的集合,这些语句同时执行成功完成某项功能 事务的CAID特性: 原子性:一个事务的执行是整体性的,要么内部所有语句都执行成功,要么一个都别想成功 一致性:事务必须使数据库从一个一致性状态变到另一个一致性状态. 隔离性:一个事务的执行不可以被其他事务干扰,一个事物内部语句执行不受并发的其他操作影响,彼此相互隔离. 持久性:事务的提交对数据库的改变是永久性的,不受外部因素或其他操作影响 事务的语法规则: create table user( id int p…
1.存储过程 MySQL中存储过程的参数中有IN.OUT.INOUT类型,但是函数的参数只能是IN类型的. “in” 参数:跟 C 语言的函数参数的值传递类似, MySQL 存储过程内部可能会修改此参数,但对 in 类型参数的修改,对调用者来说是不可见的. DROP PROCEDURE IF EXISTS prol_pl; DELIMITER $$#定义一个分解符 CREATE PROCEDURE prol_pl( IN i1 INT ) BEGIN DECLARE d1 INT;#声明一个变量…