delimiter //
CREATE DEFINER = 'root'@'localhost' FUNCTION `dayChinaNameOfWeek`(curDay DATE)
    RETURNS varchar(10) CHARSET gb2312
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
  DECLARE cName varchar(10);
  SELECT substring(_UTF8'日一二三四五六',dayofweek(curDay),1) INTO cName;
  RETURN cName;
END;
//
delimiter ;

解决方案 »

  1.   

    在命令行下输入?
    delimiter $$
    CREATE DEFINER = 'root'@'localhost' FUNCTION `dayChinaNameOfWeek`(curDay DATE)
         RETURNS varchar(10) CHARSET gb2312
         NOT DETERMINISTIC
         CONTAINS SQL
         SQL SECURITY DEFINER
         COMMENT ''
     BEGIN
       DECLARE cName varchar(10);
       SELECT substring(_UTF8'日一二三四五六',dayofweek(curDay),1) INTO cName;
       RETURN cName;
     END$$
    delimiter ;
      

  2.   

    ==================================================您好,谢谢楼上两位的指点,我测试用您提供的方法,加入备份的SQL文件中,再次导入提示错误
    您的 SQL 查询可能有错。如果可能的话,以下会列出 MySQL 服务器的错误输出,这可能对您解决问题有一定的帮助作用。ERROR: 未知的标点符号字符串 @ 12
    STR: //
    SQL: 
    delimiter //
     CREATE DEFINER = 'root'@'localhost' FUNCTION `dayChinaNameOfWeek`(curDay DATE)
         RETURNS varchar(10) CHARSET gb2312
         NOT DETERMINISTIC
         CONTAINS SQL
         SQL SECURITY DEFINER
         COMMENT ''
     BEGIN
       DECLARE cName varchar(10);
    SQL 查询: delimiter // CREATE DEFINER = 'root'@'localhost' FUNCTION `dayChinaNameOfWeek`(curDay DATE) RETURNS varchar(10) CHARSET gb2312 NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN DECLARE cName varchar(10); MySQL 返回: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'delimiter //
    CREATE DEFINER = 'root'@'localhost' FUNCTION `dayChinaNameOfWeek`' at line 1 
    我想问一下,MYSQL 备份的SQL文件中FUNCTION,不能直接导入,需要我一条条的手工输入?MYSQL确实不熟,问得不对,或不准确,请各位原谅
    会不会是MYSQL的版本问题?我的是MYSQL5.0.2.7
      

  3.   

    导入、导出的MYSQL版本是否一致,不一致有可能出现问题,比如
    从5.5备份出来的SQL(SP、UDF),导入5.6中就有问题,要对文件进行手工处理
      

  4.   

    你是如何恢复的? delimiter 不是MYSQL的SQL命令,是MYSQL.EXE客户工具的命令。
      

  5.   

    您好,我是直接使用PHPMYSQL 导入用户备份的 SQL文件,然后出现了下列以上提示。
      

  6.   

    目前看上去,好像是MYSQL的FUNCTION部分无法导入,前面产生表的部分没有问题。哪么目前的处理办法,是不是,我将原备份文件中的FUNCTION部分全部提出,导入可导部分,再通过命令行形式导入FUNCTION部分?