200分!!急急急!!!我的mysql数据库,创建了一个函数,电脑重启后就没了

mysql数据库创建了一个递归查询的函数,但是电脑重启后,函数就不存在了,求解决办法!!!在线等!!
代码如下
use abell_db;
DROP function IF EXISTS `getChildLst`;
set global log_bin_trust_function_creators=TRUE;
delimiter //

CREATE FUNCTION `getChildLst`(rootId INT)
RETURNS varchar(1000)
BEGIN
DECLARE sTemp VARCHAR(1000);
DECLARE sTempChd VARCHAR(1000);

SET sTemp = '$';
SET sTempChd =cast(rootId as CHAR);

WHILE sTempChd is not null DO
SET sTemp = concat(sTemp,',',sTempChd);
SELECT group_concat(department_no) INTO sTempChd FROM department where FIND_IN_SET(superior_department,sTempChd)>0;
END WHILE;
RETURN sTemp;
END
//

看一下错误日志。

修复下函数表:repair table proc;

这个函数我的mysql也有,天天重启从未丢失:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-31
你把你的问题写一下,我帮你写个mysql的递归查询函数,是php语言么?追问

不是,是java的,我现在就不知道这个问题是怎么造成的,为什么函数创建了以后,重启了下电脑就没有掉的

追答

没保存还是怎么回事儿?

追问

函数怎么保存啊,不是sql语句执行下吗,执行了以后,测试的话,只要不关电脑的话,就没事的,只要电脑关了,这个函数,就得重新创建,。。。今天早晨来公司开电脑就碰到这个问题

追答

java操作mysql数据库,语言同理,写下代码,把操作语句保存了,以后用的时候执行不就行了?

追问

我不想这样,我想的是函数写到数据库了,就让他一直在数据里,不想每次用java再去创建一次和这个函数

第2个回答  2013-05-31
不保存当然重启后没了,把他做成存贮过程追问

怎么弄

追答

创建方法SQL:
iN 为输入参数,OUT为输出
create procedure 过程名称(IN 输入参数名 类型, OUT 输入参数名 类型)

begin
..代码..
end

调用方法SQL:
call DBStore()

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网