首页 > 数据库 >2.mysql存储过程、存储函数与触发器

2.mysql存储过程、存储函数与触发器

时间:2023-02-15 23:56:56浏览次数:41  
标签:存储 END -- .... 触发器 游标 循环 名称 mysql

-- 创建一个存储过程
DELIMITER $
CREATE
PROCEDURE 存储过程名称(返回类型 参数名1 参数类型1, ....)
[ ...... ]
BEGIN
-- 具体组成存储过程的SQL语句....
END $
DELIMITER ;

 

-- 创建一个存储函数
DELIMITER $
CREATE
FUNCTION 存储函数名称(参数名1 参数类型1, ....)
RETURNS 数据类型
[NOT] DETERMINISTIC statements
BEGIN
-- 具体组成存储函数的SQL语句....
END $
DELIMITER ;

 

 

-- 创建一个触发器
CREATE TRIGGER 触发器名称
{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON 表名
FOR EACH ROW
-- 触发器的逻辑(代码块);

-- ------------- 用户变量与局部变量 ---------------
-- 定义、修改用户变量
set @变量名称 = 变量值;
-- 查询用户变量
select @变量名称;

-- 定义局部变量
DECLARE 变量名称 数据类型 default 默认值;
-- 为局部变量赋值(方式1)
SET 变量名 = 变量值;
-- 为局部变量赋值(方式2)
SET 变量名 := 变量值;
-- 为局部变量赋值(方式3)
select 查询结果字段 into 变量名 from 表名;

-- ------------- 流程控制 ---------------
-- if、elseif、else条件分支语法
IF 条件判断 THEN
-- 分支操作.....
ELSEIF 条件判断 THWN
-- 分支操作.....
ELSE
-- 分支操作.....
END IF

-- case分支判断语句
-- 第一种语法
CASE 变量
WHEN 值1 THEN
-- 分支操作1....
WHEN 值2 THEN
-- 分支操作2....
.....
ELSE
-- 分支操作n....
END CASE;

-- 第二种语法
CASE
WHEN 条件判断1 THEN
-- 分支操作1....
WHEN 条件判断2 THEN
-- 分支操作2....
.....
ELSE
-- 分支操作n....
END CASE;

-- 循环:LOOP、WHILE、REPEAT
-- loop循环
循环名称:LOOP
-- 循环体....
END LOOP 循环名称;

-- while循环
【循环名称】:WHILE 循环条件 DO
-- 循环体....
END WHILE 【循环名称】;

-- repeat循环
【循环名称】:REPEAT
-- 循环体....
UNTIL 结束循环的条件判断
END REPEAT 【循环名称】;

-- 循环跳转
LEAVE 【循环名称】; -- 结束某个循环体
ITERATE 【循环名称】; -- 跳出某个循环体,继续下次循环

-- ------------- 存储过程的游标 ---------------
-- ①声明(创建)游标
DECLARE 游标名称 CURSOR FOR select ...;

-- ②打开游标
OPEN 游标名称;

-- ③使用游标
FETCH 游标名称 INTO 变量名称;

-- ④关闭游标
CLOSE 游标名称;

标签:存储,END,--,....,触发器,游标,循环,名称,mysql
From: https://www.cnblogs.com/hongda-88/p/17125178.html

相关文章

  • 1.mysql创建索引
    --创建一个普通索引(方式①)createindex索引名ON表名(列名(索引键长度)[ASC|DESC]);--创建一个普通索引(方式②)altertable表名addindex索引名(列名(索引键长度)......
  • mysql keepalive +双主架构注意问题
    具体搭建参考Linux两节点+keepalive搭建MySQL双主集群-So怪咖-博客园(cnblogs.com)auto_increment_offset=1#双主复制中,2台服务器的自增长字段初值分别配置为1......
  • mysql 实现insert update 功能
    <insertid="insertOrUpdateSelective"keyColumn="id"keyProperty="id"parameterType="com.xxx.xxx.UserDO"useGeneratedKeys="true">INSERTINTOuser<tr......
  • 使用mysql管理软件导入恢复/导出备份mysql
    利用mysql管理工具导入导出,可以避免数据导入导出时出现的乱码问题,mysql的管理软件有很多,文本主要介绍NavicatPremium的使用方法,软件可以去官方搜索下载。本文来源于互联网......
  • mysql的性能的一些测试
    测试平台mysql8.0.31,2核心4线内存2G的虚拟机硬盘ssd,下面测试结果的瓶颈很多都来自这2G的内存。char比verchar块?首先说结论,差不多,没区别,别信谣110W数据,无......
  • 文件名读取函数读取文件名存储
    提问: intmain(){_finddata_tfile;longlf;if((lf=_findfirst("*.txt",&file))==-1){cout<<"cannotfindfile"<<endl;}......
  • 免安装MYSQL下载并安装
    一、去MYSQL官网下载https://www.mysql.com/官网首页翻到下面,点击如图所示的MySQLCommunityServer  二、解压,配置,安装可以看这篇教程:http://c.biancheng.net/vi......
  • 部署canal同步mysql-binlog到kafka具体操作
    准备[mysqld]log-bin=mysql-bin#开启binlogbinlog-format=ROW#选择ROW模式授权canal链接MySQL账号具有作为MySQLslave的权限CREATEUSERcanalIDENTI......
  • mysql数据库备份
    完全备份每次对数据进行完整的备份可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象但它需要花费更多的时间和空间,所以,做一次完全备份的......
  • mysql列转行
    背景需要将原子数据表的数据同步到结果表原子数据表:base_indexdate_timeindex_idvalue2023-01pv1002023-01uv2002023-01newUser3002023-0......