Mysql ---12 事务

1.事务:  多条数据库操作语句DML DQL同时成功或同时失败

      参考文章:https://blog.csdn.net/Jocker_D/article/details/87384673

  

原子性:成功都成功,失败都失败

一致性:多用户数据一致

持久性:事务提交或未提交前后数据

隔离性: 多用户互不影响

  

mysql 默认自动开启事务
set autocommit=0;关闭
set autocommit=1;开启
创建事务:
    set  autocommit=0 --关闭事务自动提交
    start transaction---事务开启
        select...
        insert into...
        update table set
        delete from..where..   --- 操作动作
    commit ---提交事务
    rollback --提交失败回滚
    set autocommit=1 ---手动开启事务
    savepoint 保存点
    rollback to savepoint ---回滚到保存点
    release  savepoint ----撤销保存点
=====================================
create database if not exists D character set utf8 collate  utf8_general_ci;
use D;
create table if not exists `account`(
`id` int(3) not null auto_increment,
`name` varchar(30) not null,
`money` decimal(9,2) not null,
primary key (`id`)
)engine = innodb  default charset=utf8;
insert into account(name,money)value(‘A‘,2000.00),(‘B‘,10000.00);

set autocommit=0;--关闭自动提交
start transaction --开启事务
	update account set money=money-500 where name=‘A‘;
	update account set money=money+500 where name=‘B‘;
commit;--提交所有操作
rollback;--失败回滚
set autocommit=1;--恢复自动提交

  

  

原文地址:https://www.cnblogs.com/chencn/p/12303862.html

时间: 2024-10-20 12:25:38

Mysql ---12 事务的相关文章

MySql开启事务

1 CREATE PROCEDURE test_sp1( ) 2 BEGIN 3 DECLARE t_error INTEGER DEFAULT 0; 4 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; 5 6 START TRANSACTION; 7 INSERT INTO test VALUES(NULL, 'test sql 001'); 8 INSERT INTO test VALUES('1', 'test sql 00

mysql之事务详解

mysql之事务详解 2015年12月16日 21:28:35 阅读数:6178 我们知道,应用中的一个业务逻辑,往往由多条语句组合完成.那么我们就可以简单地将事务理解为一组SQL语句的集合,要么这个集合全部成功集合,要么这个集合就全部失败退回到第一句之前的状态. 语法 我们先来看看事务的语法.现在的社会比较浮躁,大家往往只在乎如何解决问题,而不去考虑问题的本质到底是什么. 所以我决定先来介绍事务的语法: 1. 开启事务start transaction,可以简写为 begin 2. 然后记录之

MySQL的事务与事务隔离

MySQL中自从引入InnoDB引擎后,在MySQL中就支持事务,事务就是一组原子性的查询语句,也即将多个查询当作一个独立的工作单元,平时通过提交工作单元来完成在事务中的相应的查询或修改,在能支持事务的数据库中必须要满足ACID测试,即事务的四个特性: A:Atomicity,原子性(都执行或者都不执行) C:Consistency,一致性(从一个一致性状态转到另外一个一致性状态) I:Isolaction,隔离性(一个事务的所有修改操作在提交前对其他事务时不可见的) D: Durability

mysql之事务

我们先来说说什么是事务: 事务就是逻辑上的一组操作,组成这组操作的各个单元,要不全都成功,要不全都失败.一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行.换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的.如果在事务的任何操作失败,则整个事务将失败. mysql的事务支持不是绑定在mysql服务器本身,而是与存储引擎相关.例如,MyISAM:不支持事务,用于只读程序提高性能:InnoDB:支持ACID事务,行级所,并发:Berkeley DB:支持事务. 事务的

MySQL的事务

MySQL的事务 1.事务:事务是由一步或者几步数据库操作序列组成的逻辑执行单元,这一系列操作要么全部执行,要么全部放弃执行. 2.事务具备的四个特性(简称为ACID性): (1)原子性(Atomicity): 事务是应用中最小的执行单位,具有不可再分的特征,事务是应用中最小的逻辑执行体: (2)一致性(Consistency): 事务执行的结果必须使数据库从一个一致性状态转变到另一个一致性的状态.当数据库只包含事务成功提交的结果时,数据库处于一致性状态.如果系统运行发生中断,某个事务尚未完成而

MySQL 数据库事务与复制

好久没有写技术文章了,因为一直在思考 「后端分布式」这个系列到底怎么写才合适. 最近基本想清楚了,「后端分布式」包括「分布式存储」和 「分布式计算」两大类. 结合实际工作中碰到的问题,以寻找答案的方式来剖解技术,很多时候我们都不是在创造新技术,而是在应用技术. 为了更有效率与效果的用好技术,我们需要了解一些技术的原理与工作方式. 带着问题从使用者的角度去剖析技术原理,并将开源技术产品和框架作为一类技术的参考实现来讲解. 以讲清原理为主要目的,对于具体实现的技术细节若无特别之处则尽可能点到即止.

MySQL数据库事务隔离级别(Transaction Isolation Level)

今天在学习JDBC的时候看到了关于MySql的事务的隔离级别的问题,感觉内容挺高级的,所以记录一篇文章,以备后面使用. 数据库隔离级别有四种,应用<高性能mysql>一书中的说明: 然后说说修改事务隔离级别的方法: 1.全局修改,修改mysql.ini配置文件,在最后加上 1 #可选参数有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE. 2 [mysqld] 3 transaction-isolation = R

找出未提交的MySQL线程/事务

找出未提交的MySQL线程/事务: SELECT trx_id,trx_state,trx_started,trx_mysql_thread_id,CURRENT_TIMESTAMP - trx_started AS RUN_TIME from information_schema.innodb_trx; SELECT * from information_schema.processlist;   这个能看到上面哪个SQL线程ID(下图的378号线程就是造成MDL锁的罪魁祸首) SELECT

mysql.connector 事务总结

mysql.connector事务总结: connection.autocommit = 0 (默认值) 事务处理 使用 connection.commit()方法 #!/usr/bin/env python # -*- coding:utf-8 -*- '''mysql.connector事务总结: connection.autocommit = 0 (默认值) 事务处理 使用 connection.commit()方法 分析: 智能commit状态: connection.autocommi