数据的创建、调用、修改、删除存储过程,以及第一类丢失更新(回滚丢失)和 第二类丢失更新(覆盖丢失/两次更新问题)

数据的创建存储过程、调用存储过程、修改存储过程、删除存储过程,以及第一类丢失更新(回滚丢失)和 第二类丢失更新(覆盖丢失/两次更新问题)

文章目录

  • 一、创建存储的语法
  • 二、调用存储过程
  • 三、修改存储过程
  • 四、删除存储过程
  • 五、**第一类丢失更新**(回滚丢失)
  • 六、**第二类丢失更新**(覆盖丢失/两次更新问题)


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建存储的语法

CREATE PROCEDURE 过程名称( [ [输入输出类型] 参数名 参数类型(宽度) , ... ] ) 
BEGINSQL语句块
END $

其中输出输入的参数类型有以下三种:

  • IN :表示输入参数

    • 仅能从存储过程的调用者向存储过程传递数据(即由外向内传递)
  • OUT :表示输出参数

    • 仅能从存储过程内部将数值传递给存储过程的调用者(即由内向外传递)
  • INOUT :表示输入输出参数

    • 既能从存储过程的调用者向存储过程传递数据(即由外向内传递)
    • 又能从存储过程内部将数值传递给存储过程的调用者(即由内向外传递)
mysql> CREATE PROCEDURE register(IN userName VARCHAR(20),IN userPass VARCHAR(20),OUT userId INT)-> BEGIN-> INSERT INTO UserInfo(userName,userPass)VALUES(userName,userPass);-> SELECT LAT_INSERT_ID() INTO userId;-> END $

在这里插入图片描述
其中:

mysql> DELIMITER $

是来修改 定界符

之后遇到修改后的定界符就表明语句结束(因为语句中有原本的分界符,会冲突),等到存储过程创建完毕则需要将 定界符 修改为默认的 ;

DELIMITER ;

二、调用存储过程

在 MySQL 中调用存储过程可以通过 CALL 命令来实现:
代码如下(示例):

CALL 过程名称( [实参列表] )

根据实际情况为 存储过程 传递参数。

如果参数类型为 OUTINOUT 则需要定义变量并将变量作为存储过程的参数使用。

三、修改存储过程

代码如下(示例):

ALTER PROCEDURE 过程名称 [特征];
mysql> ALTER PROCEDURE register;

在这里插入图片描述

四、删除存储过程

通过 drop procedure 命令可以删除存储过程:

DROP PROCEDURE [IF EXISTS] 过程名称;

五、第一类丢失更新(回滚丢失)

隔离级别较高的:
在这里插入图片描述
隔离级别较低的:
在这里插入图片描述
但在MySQL数据库,任何隔离级别不允许第一类更新丢失。

六、第二类丢失更新(覆盖丢失/两次更新问题)

隔离级别较高的:
在这里插入图片描述
隔离级别较低的:
在这里插入图片描述
第二类丢失更新原因:MySQL可重复读默认采用的是快照读。快照读的一个问题也就是没有办法获取最新的数据。所以快照读是第二类更新丢失的一个主要原因。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/326031.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux第16步_安装NFS服务

NFS(Network File System)是一种在网络上实现的分布式文件系统,它允许不同的操作系统和设备之间共享文件和资源。 在创建的linux目录下,再创建一个“nfs“文件夹,用来供nfs服务器使用,便于”我们的开发板“…

实现网页跟随系统主题切换

如何实现网页跟随系统主题切换?想必大家都是用过媒体查询media (prefers-color-scheme: dark) 实现亮/暗主题的切换,那如何让其跟随系统自动切换呢?在window对象上,有matchMedia这个API可以帮助我们解决这个问题。它和css中的媒体…

ssm基于java web 的QQ村旅游网站的设计+vue论文

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统旅游信息管理难度大,容错率低,管理…

【精通C语言】:深入解析C语言中的while循环

🎥 屿小夏 : 个人主页 🔥个人专栏 : C语言详解 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、while循环1.1语法1.2 执行过程解析1.3 break1.4 continue 🌤️全篇总结 &…

Vue3 使用 Teleport 封装 一个 Dialog

文章目录 什么是Teleport ?用法:1. 通过 to 指定传送的位置2. 禁用 teleport3. 共享一个 Teleport封装一个Dialog效果:什么是Teleport ? 是一个内置组件,它可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去。 简单的说,Telep

关于kthread_stop的疑问(linux3.16)

线程一旦启动起来后,会一直运行,除非该线程主动调用do_exit函数,或者其他的进程调用kthread_stop函数,结束线程的运行。 之前找销毁内核线程的接口时,发现了kthread_stop这个接口。网上说这个函数能够销毁一个内核线程…

服务号怎么改为订阅号

服务号和订阅号有什么区别?服务号转为订阅号有哪些作用?很多小伙伴想把服务号改为订阅号,但是不知道改了之后具体有什么作用,今天跟大家具体讲解一下。首先我们知道服务号一个月只能发四次文章,但是订阅号每天都可以发…

VMware 安装 macOS虚拟机(附工具包)

VMware 安装 macOS虚拟机,在Windows上体验苹果macOS系统! 安装教程:VMware 安装 macOS虚拟机VMware Workstation Pro 是一款强大的虚拟机软件,可让您在 Windows 电脑上运行 macOS 系统。只需简单几步操作,即可轻松安装…

Erupt即开即用的后台管理系统【告别前端代码】

一、引子 【零前端代码,几行Java注解,搞定后台管理系统】 如果只是自己内部公司使用的话,大多数功能都可以满足,剩下的就是自己添砖加瓦了。 我用这个主要是简单快捷,10分钟搭建一个简易的后台管理系统。 二、基本…

YOLOv5源码中的参数超详细解析(6)— common.py

前言:Hello大家好,我是小哥谈。YOLOv5是一种先进的目标检测算法,它可以实现快速和准确的目标检测。common.py文件是YOLOv5中的一个模块,它包含了一些常用的函数和类,用于定义网络结构中的各个模块。该文件中的函数和类被其他文件引用,用于构建整个YOLOv5模型。本节课就结…

1.5 Unity中的数据存储 PlayerPrefs、XML、JSON

Unity中的三种数据存储:数据存储也称为数据持久化 一、PlayerPrefs PlayerPrefs是Unity引擎自身提供的一个用于本地持久化保存与读取的类,以键值对的形式将数据保存在文件中,然后程序可以根据关键字提取数值。 PlayerPrefs类支持3种数据类…

【论文阅读笔记】Mip-NeRF 360: Unbounded Anti-Aliased Neural Radiance Fields

目录 概述摘要引言参数化效率歧义性 mip-NeRF场景和光线参数化从粗到细的在线蒸馏基于区间的模型的正则化实现细节实验限制总结:附录退火膨胀采样背景颜色 paper:https://arxiv.org/abs/2111.12077 code:https://github.com/google-research/…