当前位置: 首页 > news >正文

Mysql-事务和索引

1.事务

1.1、什么是事务

  • 事务就是将一组SQL语句放在同一批次内去执行
  • 如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行
  • MySQL事务处理只支持InnoDB和BDB数据表类型

1.2、基本语法

-- 查看事务的提交方式
SELECT @@autocommit;-- 使用set语句来改变自动提交模式
SET autocommit = 0;   /*关闭*/
SET autocommit = 1;   /*开启*/-- 注意:
--- 1.MySQL中默认是自动提交
--- 2.使用事务时应先关闭自动提交-- 开始一个事务,标记事务的起始点
START TRANSACTIONBEGIN-- 提交一个事务给数据库
COMMIT-- 将事务回滚,数据回到本次事务的初始状态
ROLLBACK-- 还原MySQL数据库的自动提交
SET autocommit =1;-- 保存点
SAVEPOINT 保存点名称 -- 设置一个事务保存点
ROLLBACK TO SAVEPOINT 保存点名称 -- 回滚到保存点
RELEASE SAVEPOINT 保存点名称 -- 删除保存点

测试:

/*
课堂测试题目A在线买一款价格为500元商品,网上银行转账.
A的银行卡余额为2000,然后给商家B支付500.
商家B一开始的银行卡余额为10000创建数据库shop和创建表account并插入2条数据
*/CREATE DATABASE `shop`CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `shop`;CREATE TABLE `account` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(32) NOT NULL,
`cash` DECIMAL(9,2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO account (`name`,`cash`)
VALUES('A',2000.00),('B',10000.00)-- 转账实现
SET autocommit = 0; -- 关闭自动提交
START TRANSACTION;  -- 开始一个事务,标记事务的起始点
UPDATE account SET cash=cash-500 WHERE `name`='A';
UPDATE account SET cash=
原文地址:https://blog.csdn.net/weixin_53801014/article/details/147076218
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mrgr.cn/news/97712.html

相关文章:

  • 【OSG学习笔记】Day 1: OSG初探——环境搭建与第一个3D窗口
  • Linux(十三)fork + exec进程创建
  • PyTorch 学习笔记
  • vue3+element-plus动态与静态表格数据渲染
  • 0.机器学习基础
  • 循环神经网络 - 参数学习之随时间反向传播算法
  • Android Input——输入系统介绍(一)
  • 实现usb的MTP功能
  • window上 docker使用ros2开发并usbip共享usb设备
  • Docker+Jenkins+Gitee自动化项目部署
  • 【Linux】系统进程管理
  • oracle 11g密码长度和复杂度查看与设置
  • 处理Excel的python库openpyxl、xlrd、xlwt、pandas有什么区别,搞懂它
  • python三大库之---pandas(二)
  • this指针 和 类的继承
  • Qt项目——记事本
  • HarmonyOS应用开发者高级-编程题-001
  • 构建一个最简单的UDP服务器和客户端并逐行解析
  • 新一代达梦官方管理工具SQLark:可视化建表操作指南
  • 【QT】QT编译链接 msql 数据库