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 8 创建数据库与创建用户分配权限图文方法
下面是我们需要创建一个数据与一个用户的方法,图文操作的原理跟命令行原理是一样的. navicat 8 精简版(7M) MYSQL图像管理工具 V8.0.28第一步.先连接mysql如果出现连接不了的情况,一般是mysql数据库没有启动,或密码不正确.大家可以解决下. 第二步.先创建一个数据库 jb51 第三步:输入jb51,下面是默认的字符,一般情况下gbk默认就可以.如果是utf8的最好选择想对应的字符,防止乱码的出现.第四步:新建一个用户jb51user,先点击管理用户,点击添加用户第五步:
-
使用navicat 8实现创建数据库和导入数据 管理用户与权限[图文方法]
下面看图使用该工具创建数据库和导入数据.navicat 8 下载地址 1 2 3 4 5 6 7 8 9 10 11 12.教程完毕. 2,管理建立用户和分配用户权限 在这里,我们可以发现root是MySQL最高级别权限的用户,它拥有查看.修改和删除MySQL软件中所有数据库的权限.当需要有多个数据库,并且分配给不同的用户使用,多个用户之间只有查看自己对应数据库的权限,不相互干扰,那么需要怎么做呢? 答案很简单,建立多个数据库和用户,给用户设置管理指定数据库的权限.操作方法如下: 鼠标右键点击"
-
navicat中创建存储过程、触发器和使用游标的简单实例(图文)
1.建表 首先先建两张表(users表和number表),具体设计如下图: 2.存储过程 写一个存储过程,往users表中插入数据,创建过程如下: 代码如下 BEGIN #Routine body goes here... declare n bigint; set n = 201121029684; while n <= 201121029694 do insert into users(student_ID) values(n); set n = n + 1; end while; END
-
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
-
php运行时动态创建函数的方法
本文实例讲述了php运行时动态创建函数的方法.分享给大家供大家参考.具体分析如下: 一般的语言函数必须定义了在运行,而php支持在运行时动态创建函数,下面是一个简单的范例,在运动时根据不同的条件创建函数$a <?php if (count($_POST) > 0) { $prepped = create_function('$a', 'return trim($_POST[$a]);'); } elseif (count($_GET) > 0) { $prepped = create_f
-
php从字符串创建函数的方法
本文实例讲述了php从字符串创建函数的方法.分享给大家供大家参考.具体如下: php中可以把整个函数定义放到一个字符串内动态定义,有了create_function这个函数,你就可以根据用户输入动态创建函数了,非常方便,create_function使用方法如范例所示: 复制代码 代码如下: <?php $lambda =create_function('$a,$b','return(strlen($a)-strlen($b));'); $array = array('really long s
-
MySQL中隐式转换的踩坑记录以及解决方法分享
目录 复现当时的情景 根源所在 隐式转换的规则 避免进行隐式转换 本来是一个平静而美好的下午,其他部门的同事要一份数据报表临时汇报使用,因为系统目前没有这个维度的功能,所以需要写个SQL马上出一下,一个同事接到这个任务,于是开始在测试环境拼装这条 SQL,刚过了几分钟,同事已经自信的写好了这条SQL,于是拿给DBA,到线上跑一下,用客户端工具导出Excel 就好了,毕竟是临时方案嘛. 就在SQL执行了之后,意外发生了,先是等了一下,发现还没执行成功,猜测可能是数据量大的原因,但是随着时间滴滴答答
-
Spring MVC参数传递中文乱码解决方法分享
概述 中国特色社会主义乱码问题是我们经常会碰到的问题,解决的办法有很多,本文分别介绍了GET方式和POST方式中文乱码解决方案中一劳永逸的办法. GET提交中文乱码解决方案 在乱码的Controller文件中采用下面的方法将编码转换成UTF-8 String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8"); 修改项目所在的Tomcat服务器
-
SQL Server常见问题及解决方法分享
写在前面 在QQ群,微信群,论坛中经常帮助使用SQL Server数据库的朋友解决问题,但是有一些最常见最基本的问题,每天都有人问,回答多了也不想再解答了,索性把这些问题整理一下,再有人问到直接发链接. 一时想法而写这篇文章,问题可能不全面,后续会一直更新. 基础问题收集资源下载 描述:XX版本数据库操作系统在哪里下载? 答:http://www.itellyou.cn/ 里面很多东西,有兴趣的自己看吧 连接问题 描述:数据库连接不上 答:请确认SQL服务是否启动,用户密码是否正确,连接的实例名
-
SQLSERVER启动不起来(错误9003)的解决方法分享
先说一下环境 客户环境:Windows2003企业版SP2 32位 SQL2005企业版 32位 SP4自己笔记本电脑环境:Windows7 SP1 32位 SQL2005个人开发者版 32位我的笔记本电脑的计算机名:joe客户电脑的计算机名:hs 客户那边的master数据库大小:几MB业务系统是winform系统客户的环境是单机系统没有使用到域网络环境:客户那边的网速比较慢,用远程协助的时候比较卡为什麽要说明我自己笔记本电脑的环境呢?请大家继续耐心看下去 检查 先打开SQLSERVER配
-
PL/SQL Dev连接Oracle弹出空白提示框的解决方法分享
没办法,只能自己研究,经过大概一天时间吧,还是搞好了,写个总结. 出现这种问题,解决方法大概有这几种: 1.权限不够,导致弹出空吧提示框.(直接上链接) http://jingyan.baidu.com/article/066074d6760959c3c21cb0d6.html 就PL/SQL图标上点右键---属性---兼容性--管理员身份运行此程序的勾打上,即可 2.环境变量没设对. ①在安装oracle服务器的机器上搜索下列文件,oci.dllocijdbc10.dll(其中10代表orac
-
thinkphp3查询mssql数据库乱码解决方法分享
thinkphp查询mssql数据库出现乱码的原因是ThinkPHP默认为UTF-8,而msmsql数据库是简体中文版,存储的是GB2312编码 解决方法: 1:在ThinkPHP\Lib\Core 打开Db.class.php,在其最后面加上2:在Db.class.php找到function select(),在$result = $this->query($sql);后面加一条 $result=iconv2utf8($result),就OK了 复制代码 代码如下: public functi
-
mysql 双向同步的键值冲突问题的解决方法分享
出现的问题(多主自增长ID重复) 1:首先我们通过A,B的test表结构 2:掉A,在B上对数据表test(存在自增长ID)执行插入操作,返回插入ID为1 3:后停掉B,在A上对数据表test(存在自增长ID)执行插入操作,返回的插入ID也是1 4:然后 我们同时启动A,B,就会出现主键ID重复 解决方法: 我们只要保证两台服务器上插入的自增长数据不同就可以了 如:A查奇数ID,B插偶数ID,当然如果服务器多的话,你可以定义算法,只要不同就可以了 在这里我们在A,B上加入参数,以实现奇偶插入 A
随机推荐
- Shell脚本中的特殊字符(美元符、反斜杠、引号等)作用介绍
- Angularjs 事件指令详细整理
- iOS实现相册多选图片上传功能
- javascript操作cookie的文章(设置,删除cookies)
- 浅谈JS的基础类型与引用类型
- php array_pop()数组函数将数组最后一个单元弹出(出栈)
- Android中加载网络资源时的优化可使用(线程+缓存)解决
- Go语言实现简单Web服务器的方法
- 动态样式类封装JS代码
- java开发_图片截取工具实现原理
- javascript 函数参数限制说明
- 太牛了WEB创业十条
- 用VBS记录客户机操作的代码
- 兼容ie、firefox的图片自动缩放的css跟js代码分享
- 浅谈jQuery中对象遍历.eq().first().last().slice()方法
- JS 巧妙获取剪贴板数据 Excel数据的粘贴
- C#特性-迭代器(上)及一些研究过程中的副产品
- IOS 线程死锁详细介绍
- 关于php支持分块与断点续传文件下载功能代码
- Android静默安装实现方案 仿360手机助手秒装和智能安装功能
其他
- vue路由跳转vuex数据被重置
- ajax获取layui单选框的值
- Linux如何用OpenCV接口打开摄像头原理
- java 取表最大日期
- vue3设置代理不生效
- 斐波那契数列非递归实现Java
- tesseract识别加减乘除
- as 升级后项目jar 冲突
- springboot Aop执行了两次
- Python try语句
- vue 打包后接口预检
- scrapy和feapder
- Android studio的局部的线性布局设置边框
- python permission 权限
- java log4j2 关闭指定日志路径
- vantweapp picker 联动
- element的switch的初始状态
- linux怎么把nginx页面变成正在维护
- android监听长按时间
- Python调换两列