mysql存储过程报一下错误,不知道是这么回事,求帮助

mysql存储过程报一下错误,不知道是这么回事,求帮助,第1张

create procedure student()

begin

select stu_no from student-- 加个分号

end

-- 如果加了分号还不行的话抄,提示的错误应该是

错误:PLS-00428: 在此 SELECT 语句中缺少 INTO 子句

原因是单独的一个袭select语句在存储过程中是不应该存在的,所以应该改成zhidaoselect stu_no into 的模式

create procedure student()

is

v_stu_no student.stu_no%TYE

begin

select stu_no into v_stu_no from student where rownum <= 1-- 改成select into 字句

end

一、问题原因

mysql数据库的存储过程创建语句之中需要使用begin表示存储过程要执行的语句从这里开始,在结尾使用end表示存储过程的语句要结束了。而在mysql数据库之中无论是查询还是添加语句都要使用分号去分隔,但是在存储过程之中创建sql语句的时候却被mysql数据库的编译器把分号当做了结束语句,没有end就被检测成语法错误了。

二、解决方法

一般来说上面这个问题都是因为mysql数据库版本所导致的,如果确定语句没有错误的话就要更新版本或者将语句的结束符改成别的符号,只要能够让mysql数据库编译器解析到end就可以了。使用delimiter即可更改sql语句结束符,示例如下:

delimiter // --更改结束符create procedure course_id_name(in cid varchar(20))beginselect namefrom coursewhere id = cidend//delimiter --将结束符换回分号

以上就是关于“mysql数据库存储过程语法报错为什么?原因和解决方法看这里”的全部内容了,想要了解更多python的实用知识和代码示例可以持续关注这个频道,每次更新都会有很多新的知识技术分享给大家。

第三行末尾加分号再试试,不加分号的话,mysql会认为第二 至 第五行是一条指令,sql没有这样的语法,所以就会报1064错误了。

另外,sql本身不区分大小写,你重复写两遍是要闹哪样啊少年


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7447136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存