问题描述
- mysql导入.sql文件的问题
-
将一个.sql文件编辑,文本中最后加入下面这段代码(部分代码)后,导入这个sql文件就会报错(这段新加代码未能导入)
原因是什么?还有就是应该如何解决这个问题。多谢了!# # Function "fun_getChildList" # DROP FUNCTION IF EXISTS `fun_getChildList`; CREATE FUNCTION `fun_getChildList`(`type` int,`areaid` int,`orgid` int) RETURNS varchar(1000) CHARSET utf8 BEGIN DECLARE sTemp VARCHAR(1000); DECLARE xh VARCHAR(50); DECLARE areacode VARCHAR(100); DECLARE cunt INT; SELECT CONCAT(ORGXH,'%') INTO xh from ss_organization where ID_ORG=orgid; IF type=1 THEN set sTemp='$'; SELECT CONCAT(sTemp,',',GROUP_CONCAT(ID_ORG)) INTO sTemp from ss_organization where ORGXH like xh; ELSEIF type=0 THEN SELECT COUNT(1) into cunt FROM ss_organization where ss_organization.ID_ORG=orgid and ss_organization.ORG_DISTRPARENTID=areaid; if cunt>0 then select area_code INTO areacode from bs_distrarea_info where area_id=areaid; SELECT IFNULL(GROUP_CONCAT(ID_ORG),'0') into sTemp from ss_organization LEFT JOIN bs_distrarea_info ON ORG_DISTRPARENTID=area_id where area_code like CONCAT(areacode,'%') and area_id<>areaid; SELECT CONCAT(sTemp,',',IFNULL(GROUP_CONCAT(ID_ORG),'0')) INTO sTemp from ss_organization where ORGXH like xh; ELSEIF cunt=0 THEN SELECT IFNULL(GROUP_CONCAT(ID_ORG),'0') into sTemp from ss_organization where ss_organization.ORG_DISTRPARENTID=areaid; end IF; SET sTemp=CONCAT('$',',',sTemp); END IF; RETURN sTemp; END; # # Function "fun_getOrgLine" # DROP FUNCTION IF EXISTS `fun_getOrgLine`; CREATE FUNCTION `fun_getOrgLine`(`orgid` int) RETURNS varchar(1000) CHARSET utf8 BEGIN DECLARE sTemp VARCHAR(1000); DECLARE sTempChd VARCHAR(1000); DECLARE grade INT; DECLARE enterprisename VARCHAR(100); DECLARE st INT; SELECT ss_organization.ORG_GRADE,ss_organization.ENTERPRISE_NAME into grade,enterprisename from ss_organization where ss_organization.ID_ORG=orgid; SET st=1; WHILE grade<=st DO set st=st+1; END WHILE; RETURN grade; END; # # Function "getChildLst" # DROP FUNCTION IF EXISTS `getChildLst`; CREATE FUNCTION `getChildLst`(rootId INT) RETURNS varchar(1000) CHARSET utf8 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(o.ID_ORG) INTO sTempChd FROM ss_organization o where FIND_IN_SET(o.ORG_PARENT_ID,sTempChd)>0; END WHILE; RETURN sTemp; END;
解决方案
如果你的函数本身没有语病,那么很可能是识别结尾符有问题,因为mysql默认;结尾,所以你直接这样写会导致执行失败,你在这些函数执行前加上
DELIMITER $
使用完后,也即在没有存储过程或者函数的时候再还原回来
DELIMITER ;
解决方案二:
你这是存储过程,单独执行就行
解决方案三:
这个是存储过程,你要加一些信息,看是执行什么语句的时候出错了。
解决方案四:
一.MySQL的命令行模式的设置:
桌面->我的电脑->属性->环境变量->新建->
PATH=“;pathMySQLin;”其中path为MySQL的安装路径。
二.简单的介绍一下命令行进入MySQL的方法:
1.C:>MySQL -h hostname -u username -p
按ENTER键,等待然后输入密码。这里hostname为服务器的名称,如l......
答案就在这里:关于mysql导入sql文件的问题
----------------------
时间: 2024-09-10 19:43:19