栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据库 | 触发器 存储过程 并发控制

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据库 | 触发器 存储过程 并发控制

没有在前端实现。

触发器

例:密码长度大于6

CREATE DEFINER = `root`@`%` TRIGGER `password` BEFORE UPDATe ON `Untitled` FOR EACH ROW BEGIN
	IF length(NEW.upwd) < 6
	THEN
		DELETE FROM users WHERe upwd=new.upwd;
	END IF;
END;

存储过程

例:更新密码

CREATE DEFINER=`root`@`%` PROCEDURE `update_user`(
in `uunam` varchar(20),
in `uupwd` varchar(10)
)
BEGIN
	update users set upwd = uupwd where unam = uunam;
END


或者在Navicat中

并发控制

四种隔离级别,它们分别在不同的程度上为并发操作的正确调度提供一定的保证:

(1)读未提交(Read Uncommitted);

(2)读提交(Read Committed, RC);

(3)可重复读(Repeated Read, RR);mysql 默认使用级别。

(4)串行化(Serializable);

并发问题:

  1. 脏读
    脏读指的是读到了其他事务未提交的数据(这些数据可能会回滚,也就是可能最终不会存到数据库中)。
  2. 不可重复读
    对指的是在同一事务内,不同的时刻读到的同一批数据可能是不一样的,可能会受到其他事务的影响,比如其他事务改了这批数据并提交了。通常针对数据更新(UPDATE)操作。
  3. 可重复读
    可重复读指的是在一个事务内,最开始读到的数据和事务结束前的任意时刻读到的同一批数据都是一致的。通常针对数据更新(UPDATE)操作。
  4. 幻读
    幻读是针对数据插入(INSERT)操作来说的,当同一个查询在不同时间生成不同的行集合时就是出现了幻读。本质上是由于数据插入(INSERT)操作,使得已提交事务B对事务A产生了数据不一致的影响。
实验准备

打开两个线程,设置读未提交,并取消自动提交功能:

set autocommit = 0;
实验

1、脏读


2、幻读

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/658463.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号