mysql存储过程需要注意的

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 1.当使用游标赋值结果集时,变量名不能使用列明,不然赋值为null BEGINDECLARE stopindex INT DEFAULT 0;DECLARE id1 int;DECLARE title VARCHAR(1000);DECLARE description VARCHAR(1000);DECLARE insertdate DATETIME;DECLARE

1.当使用游标赋值结果集时,变量名不能使用列明,不然赋值为null

BEGIN


DECLARE stopindex INT DEFAULT 0;

DECLARE id1 int;
DECLARE title VARCHAR(1000);
DECLARE description VARCHAR(1000);
DECLARE insertdate DATETIME;
DECLARE username VARCHAR(1000);
DECLARE closed int;
DECLARE commandtype  VARCHAR(1000);



DECLARE
		cur CURSOR FOR (
			<span style="color:#FF0000;">select id,zlmc,zlnr,fbsj,fbr,kg,zldj from jiaowei.five_instructions</span>
		);
DECLARE  CONTINUE HANDLER FOR NOT FOUND SET stopindex = 1;
OPEN cur;
<span style="color:#FF0000;">#如此处,游标查询的表有id字段,则遍历赋值时,不能再用id做变量,不然赋值字段为null</span>
FETCH cur INTO <span style="color:#FF0000;">id1</span>,title,description,insertdate,username,closed,commandtype;

WHILE (stopindex !=1) DO
  if closed=0 THEN
   set closed=1;
  ELSE
     set closed=0;
	end if;

	insert into  topic set id=id1,title=title,description=description,insertdate=insertdate
		,username=username,closed=closed,commandtype=commandtype,msgtype=0,type='指令';

FETCH cur INTO id1,title,description,insertdate,username,closed,commandtype;


END WHILE;

CLOSE cur;

END


2.当变量赋值使用 select id into 变量名 from  student where name= "ffff"  limit 0,1;  当查不到值时会报错运行中断。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
14天前
|
存储 SQL NoSQL
mysql存储过程和存储函数
mysql存储过程和存储函数
|
14天前
|
存储 SQL 关系型数据库
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)
|
14天前
|
存储 关系型数据库 MySQL
MYSQL存储过程基础入门教程
MYSQL存储过程基础入门教程
14 0
|
14天前
|
存储 关系型数据库 MySQL
mysql存储过程
mysql存储过程
17 3
|
2天前
|
存储 SQL 关系型数据库
mysql 存储过程返回更新前记录
MySQL存储过程帮助我们在更新数据后获取旧记录,适用于审计和回滚操作。通过`BEFORE UPDATE`触发器和临时表,可以捕获并保存更新前的记录。示例展示了如何创建存储过程,当更新`employees`表时,将旧记录保存至临时表`old_records`。此外,还探讨了存储过程在数据版本控制、审计和回滚操作中的应用,以及如何与事务结合确保数据一致性。通过学习和使用存储过程,可以更有效地管理和保护数据库中的数据。
18 0
|
6天前
|
存储 SQL 关系型数据库
【MySQL进阶之路 | 基础篇】存储过程
【MySQL进阶之路 | 基础篇】存储过程
|
14天前
|
存储 SQL 关系型数据库
mysql存储过程示例
mysql存储过程示例
19 0
|
14天前
|
存储 关系型数据库 MySQL
Mysql基础第二十六天,使用存储过程
Mysql基础第二十六天,使用存储过程
29 0
Mysql基础第二十六天,使用存储过程
|
14天前
|
存储 SQL 关系型数据库
【MySQL 数据库】9、存储过程
【MySQL 数据库】9、存储过程
221 0
|
14天前
|
存储 关系型数据库 MySQL
MySQL-调用存储过程
MySQL-调用存储过程
105 2