• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    navicat不能创建函数解决方法分享

    第一次写MySQL FUNCTION,一直报错,

    Err] 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 '`company_id` int) RETURNS varchar(20) CHARSET utf8

    BEGIN

    本来的函数:

    CREATE DEFINER=`33323`@`%` FUNCTION `createSaleCode`(`benginStr` varchar,`company_id` int) RETURNS varchar(20) CHARSET utf8 
    BEGIN 
      DECLARE nearnum VARCHAR(20);  
     DECLARE nowdatepre VARCHAR(20); 
     DECLARE numout VARCHAR(20);  
     SELECT a.sale_code INTO nearnum FROM d_sale a WHERE a.company_id = company_id ORDER BY a.sale_id DESC limit 1; 
     SELECT concat(extract(year_month from now()),LPAD(extract(day from now()), 2, 0)) INTO nowdatepre; 
     IF locate(nowdatepre,nearnum)>0  
      THEN  
        set numout = nearnum +1;   
      ELSE  
        set numout = concat(beginStr,nowdatepre,'00001');  
      END IF; 
     RETURN numout; 
    END 

    这段函数在Navicat上边执行不起来,在多次尝试之后将代码修改为以下:

    delimiter $$ 
    CREATE DEFINER=`12212`@`%` FUNCTION createSaleCode(benginStr varchar(20),company_id int(11) ) RETURNS varchar(20) CHARSET utf8 
    BEGIN 
      DECLARE nearnum VARCHAR(20);  
     DECLARE nowdatepre VARCHAR(20); 
     DECLARE numout VARCHAR(20);  
     SELECT a.sale_code INTO nearnum FROM d_sale a WHERE a.company_id = company_id ORDER BY a.sale_id DESC limit 1; 
     SELECT concat(extract(year_month from now()),LPAD(extract(day from now()), 2, 0)) INTO nowdatepre; 
     IF locate(nowdatepre,nearnum)>0  
      THEN  
        set numout = nearnum +1;   
      ELSE  
        set numout = concat(beginStr,nowdatepre,'00001');  
      END IF; 
     RETURN numout; 
    END$$ 
    delimiter ; 

    问题解决。

    默认情况下,delimiter是分号;。

    总结

    以上就是本文关于navicat不能创建函数解决方法分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:简述Redis和MySQL的区别、MYSQL子查询和嵌套查询优化实例解析、几个比较重要的MySQL变量等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

    您可能感兴趣的文章:
    • navicat中创建存储过程、触发器和使用游标的简单实例(图文)
    • navicat 8 创建数据库与创建用户分配权限图文方法
    • 使用navicat 8实现创建数据库和导入数据 管理用户与权限[图文方法]
    上一篇:使用navicate连接阿里云服务器上的mysql
    下一篇:MySQL 清除表空间碎片的实例详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    navicat不能创建函数解决方法分享 navicat,不能,创建,函数,解决,