cursor-mysql中存储过程无法创建成功

问题描述

mysql中存储过程无法创建成功

delimiter $$
BEGIN
DECLARE iti varchar(25);
declare maj varchar(25);
declare cla tinyint(1);
declare buffer tinyint(1);
declare grd enum('2014级','2012级','2013级');
declare mycur CURSOR for select institude,major,grade,class from show_information;
open mycur;
fetch mycur into iti,maj,grd,cla;
while(iti is not null)DO
select buffer=count(*) from show_information where institude=iti and major=maj and grade=grd and class=cla;
update statistics set classnum=buffer where institude=iti and major=maj and grade=grd and class=cla;
fetch mycur into iti,maj,grd,cla;
end while;
close mycur;
END
$$
delimiter ;

解决方案

报什么错误,这种情况应该是你的存储过程有语法错误,并且mysql会报告的。

解决方案二:

mysql无法创建存储过程(stored procedure

解决方案三:

delimiter $$ 把前后的都去掉

解决方案四:

mysql没有这种buffer=count()
可以用select into

时间: 2024-10-06 13:42:47

cursor-mysql中存储过程无法创建成功的相关文章

mysql中存储过程、函数的一些问题_php技巧

最近写一些mysql的存储过程和函数,发现网上比较有价值的文档很少,大都是照着手册上抄来的,有些实际问题解决不了,比如用变量作表名. 经过反复调试,总算找到解决办法,一下是一些简单的记录,比较零碎.部分内容转自http://my.opera.com/Dereky/blog/show.dml/322997 1.用变量做表名: 简单的用set或者declare语句定义变量,然后直接作为sql的表名是不行的,mysql会把变量名当作表名.在其他的sql数据库中也是如此,mssql的解决方法是将整条sq

MySQL 中存储过程 中文乱码问号???

mysql 中文乱码一直是一个老大难的问题,接下来一一解决!!!! 数据库存储数据乱码 存储过程中数据乱码 001 数据库存储数据乱码 相信大家遇到最多就是数据库中存储数据,操作完之后,数据库中中文乱码,变为????问号. 解决办法 修改/etc/my.cnf 文件,在[mysqld] 中添加如下代码 character_set_server=utf8 然后重启服务 systemctl restart mariadb 010 存储过程中数据乱码 在编写存储过程中,定义一个变量,用来存储查询出来的

SQL中存储过程的创建和使用

如何创建存储过程 user testdatabase(数据库名称) go create procedure testname(存储过程名称) @test1 int, @test2 nvarchar(50) as insert into testtable values(@test1,@test2) return //select * from users where truename like '%[王刘]%' //只能分词查询,查询姓刘和姓王的信息 2 如何使用 public string[]

MySQL 中怎么在创建表时,对字段进行限定输入

问题描述 创建一个table时,怎么对字段内容进行限定?如:性别只能输入"男"."女", 年龄在 1 到 3位整数之间.谢谢! 问题补充:谢谢,有具体例子.分给你吧,新来的,就这么点,别嫌少啊,呵呵.liveHappy 写道 解决方案 比如:create table user(uid int auto_increment primary key, - 用户IDuname varchar(20) not null unique, - 用户名upwd varchar(2

MySql的存储过程学习小结 附pdf文档下载_Mysql

存储过程是一种存储在数据库库中的程序(就像正规语言里的子程序一样),准确的来说,MySql支持的"routine(例程)"有两种:一是我们说的存储过程,二是在其它sql语句中可以返回值的函数(使用起来和mysql预装载的函数一样,如pi()). 一个存储过程包括名字,参数列表,以及可以包括很多sql语句的sql语句集.在这里对局部变量,异常处理,循环控制和if条件语句有新的语法定义. 下面是一个包括存储过程的实例声明: 复制代码 代码如下: CREATE PROCEDURE proce

select-MySQL中触发器的创建问题

问题描述 MySQL中触发器的创建问题 大概要完成的功能就是将这个表(temp)得到的内容分别插入到其它的表,然后将temp表的内容删掉 create trigger insert_trigger after insert on noticetemp for each row begin insert into notice(NoticeID,NoticeTitle,Editor,Date) select NoticeID,NoticeTitle,Editor,Date from noticet

把sqlserver中的存储过程注释后创建到mysql中

  把sqlserver中的存储过程注释后创建到mysql中 #!/usr/bin/perl use DBI; use Switch; use Encode; use Encode::CN; my $source_name = "sqldb"; my $source_user_name = "sa"; my $source_user_psd = "123"; my $db_name="mysqldb"; my $locatio

在MySQL中创建带有IN和OUT参数的存储过程的方法_Mysql

 在 MySQL 中创建储存过程的语法很难记,除非你经常跟储存过程打交道,原因很简单,语法不是什么小笑话.如果你通过命令行控制 MySQL,你需要记住准确的语法.一个快速示例可以很好的帮助你做到这点.在MySQL 入门教程中,我们能够看到很多关于如何创建储存过程 和如何利用 IN 和 OUT 参数调用存储过程的示例.这些示例都很简单,能够很好的帮助你理解 MySQL 中创建带参数存储过程的语法.这些示例已在 MySQL 5.5 中通过测试.我们将用下面的雇员表创建并测试这些储存过程:   mys

实例解析MySQL中的存储过程及存储过程的调用方法_Mysql

mysql在5.1之后增加了存储过程的功能, 存储过程运行在mysql内部,语句都已经编译好了,速度比sql更快. 存储过程与mysql相当于shell和linux系统.如果你是程序员的话,那我告诉你存储过程实际上是一个方法,你只要调用这个方法,并且输入它设置好的参数就可以获取或者执行你想要的操作了. 看了如下存储过程实例,你会发现mysql存储过程和shell很像. 下面存储过程内容为:调用存储过程,并且传入用户名,密码参数.存储过程会将这她们存储到process_test表里面.看实例 一,