mysql导入.sql文件的问题

问题描述

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

mysql导入.sql文件的问题的相关文章

Mysql导入.sql文件出错

问题描述 Mysql导入.sql文件出错 mysql导入sql文件时老是提示错误,请问各位高手该怎么解决? 解决方案 那最长的串右侧没有单引号 '注意用括起来' 解决方案二: 单引号要成双成对.一一对应. 否则,SQL语句可能会因为错误的单引号导致语法错误. 解决方案三: 中文字符串后面缺少单引号 解决方案四: sql文件格式有问题,估计引号什么的被中文字符串影响了

MySQL导入.sql文件及常用命令

MySQL导入.sql文件及常用命令 转自:http://blog.csdn.net/muziduoxi/article/details/6091202  在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: mysql> source   d:/myprogram/database/db.sql; 另附mysql常用命令: 一) 连接MYSQL:     格式: mysql -h主机地址 -u用户名 -p用户密

mysql导入sql文件过大或连接超时的解决办法

原文:mysql导入sql文件过大或连接超时的解决办法      前段时间出差在现场开发的时候,导入数据库老是出问题.最后发现了一个神奇sql语句交给实施,只要导入出错就把如下语句执行就可以了.至今屡试不爽. set global max_allowed_packet=100 000 000; set global net_buffer_length=100000; SET GLOBAL interactive_timeout=28800 000; SET GLOBAL wait_timeout

Linux下Mysql导入sql文件命令

因为资料库比较大,大概在10GB左右的资料库.所以使用phpmyadmin基本是没有任何机会了.太慢而且会超时.这个基本不用想了. 首先你要登录到SSH.然后使用下面的命令 这是当前在相关的目录中使用的命令.非常简单. mysql -u资料库用户 -p 资料库名 < 文件名.sql 列如 mysql -uroot -p dbname < filename.sql   如果不在当前目录使用 mysql -u资料库用户 -p 资料库名 < /home/root/文件名.sql 主要是增加一下

Navicat for MySQL导入SQL文件

今天为了,测试数据库.特意在Navicat for MySQL上进行试验,数据是从我的博客中导出的SQL文件. 如下图: 现在安装好了Navicat for MySQL,新建一个连接: 建好连接后,在新建一个数据库: 好了,新建完数据库test后.再双击打开test数据库,右键"表",选择"运行SQL文件": 在"文件"中,我们现在SQL所在的路径: 然后点击"运行"即可,同时还要注意,在编码下面的相应,对勾要去掉,不然系统会

mysql导入sql文件命令和mysql远程登陆使用详解_Mysql

在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: 复制代码 代码如下: mysql> source   d:/myprogram/database/db.sql; 另附mysql常用命令: 一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再

mysql导入sql文件,乱码,一个例子

服务器centos,其他数据库都是utf8都正常能用 网页正常显示 这次导入一个utf8格式数据库文件 结果网页上乱码 在导出的sql文件中,注释部分有些语句也是被mysql考虑的.导出的sql文件,在服务器上导入后,文件本身是utf8但是还是乱码,此时检查sql文件首部是否有: /!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT /; /!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHAR

mysql导入sql文件报错 ERROR 2013 2006 2002

  今天导入sql总是提示错误 代码如下: ERROR 2013 (HY000): Lost connection to MySQL server during query ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/l

mysql导入sql文件报错 ERROR 2013 2006 2002_Mysql

今天导入sql总是提示错误 复制代码 代码如下: ERROR 2013 (HY000): Lost connection to MySQL server during query ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/va