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

 更新时间:2017年10月19日 11:12:47   作者:黄小鱼ZZZ  
这篇文章主要介绍了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变量等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

相关文章

  • mysql 记录不存在时插入 记录存在则更新的实现方法

    mysql 记录不存在时插入 记录存在则更新的实现方法

    相信很多人都需要用到这个语句,请看下文:(在4.1以后的版本才有效)
    2008-08-08
  • Mysql5升级到Mysql5.5的方法

    Mysql5升级到Mysql5.5的方法

    这篇文章主要介绍了Mysql5升级到Mysql5.5的方法的相关资料,需要的朋友可以参考下
    2016-01-01
  • Windows 10系统下彻底删除卸载MySQL的方法教程

    Windows 10系统下彻底删除卸载MySQL的方法教程

    mysql数据库的重新安装是一个麻烦的问题,很难卸除干净,下面这篇文章主要给大家介绍了关于在Windows 10系统下彻底删除卸载MySQL的方法教程,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • getdata table表格数据join mysql方法

    getdata table表格数据join mysql方法

    今天小编就为大家分享一篇关于getdata table表格数据join mysql方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 深入理解MySQL varchar(50)

    深入理解MySQL varchar(50)

    日常开发中,数据库建表是必不可少的一个环节,建表的时候通常会看到设定某个字段的长度为varchar(50),那么你知道是什么意思吗,感兴趣的可以了解一下
    2024-01-01
  • Mysql InnoDB中B+树索引使用注意事项

    Mysql InnoDB中B+树索引使用注意事项

    这篇文章主要为大家介绍了Mysql InnoDB中B+树索引的注意事项,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • mysql数据库删除重复数据只保留一条方法实例

    mysql数据库删除重复数据只保留一条方法实例

    这篇文章主要给大家介绍了关于mysql数据库删除重复数据,只保留一条的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 常见的数据库1045密码错误问题解决方法

    常见的数据库1045密码错误问题解决方法

    连接MySQL数据库时难免会遇到1045错误,主要是因为用户输入的用户名或密码错误被拒绝访问,下面这篇文章主要给大家介绍了关于常见的数据库1045密码错误问题的解决方法,需要的朋友可以参考下
    2023-04-04
  • mysql实现模糊查询并按匹配程度排序

    mysql实现模糊查询并按匹配程度排序

    这篇文章主要介绍了mysql实现模糊查询并按匹配程度排序方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • mysql 复制表结构和数据实例代码

    mysql 复制表结构和数据实例代码

    这篇文章主要介绍了mysql 复制表结构和数据实例代码的相关资料,需要的朋友可以参考下
    2016-10-10

最新评论