MySQL自定义函数
MySQL自定义函数
函数与存储过程类似,也是一组预先编译好的SQL语句的集合,但是存储过程可以有0个或多个返回,函数就只能有一个返回
创建函数
#语法 参数列表包含两部分 参数名和参数类型
#函数体必须有return语句 且每个sql语句后要以;结尾 所以需要使用delimiter来重新设置结束标记
#函数体中只有一句话时可以省略begin end
create function 函数名(参数列表) returns 返回值类型
begin
函数体
end
执行函数
select 函数名(参数列表)
查看函数
show create function 函数名;
删除函数
drop function 函数名;
示例
delimiter $
create function myfunc(class_name varchar(20)) returns int
begin
declare c int default 0; #设置局部变量,作为返回值
select count(s.id) into c # 将查询结果赋给局部变量
from class c
join student s on c.id = s.classid
where c.name = class_name;
return c; #返回
end $
delimiter ;
select myfunc('计算机一班');#函数调用
特别提醒一下:我在创建函数的时候出错了
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)
需要设置一下
set global log_bin_trust_function_creators=TRUE;
由于本身的博客百度没有收录,博客地址http://zhhll.icu
MySQL自定义函数 相关文章
C++中函数的形式参数引用
形式参数的传递方式 值传递 值传递是将数值传递到程序中,这种方式传递是单向传递 但是如果想要双向传递,这种视频无法满足; 引用传递 引用传递可以实现双向的传递 为了对比处两个之间的差异,这里举出两个例子来对比: 实现swap函数,进行变量之间的交换:
递归函数的参数设置
最近在刷dfs、回溯时,发现不同的题解中用了不同的参数设置,导致算法的流程的不同,在此记录一下。 全局变量 在回溯过程中,每次递归之后必须撤销对变量的修改,才能保证下次递归时变量返回正确的状态。 class Solution{private: vectorvectorint ans; vect
python中的装饰器、生成器和迭代器
一、装饰器 作用:为原函数添加新功能 示例: 1 import time 2 #为function1添加计时功能 3 def show_tine(func): 4 def inner(): 5 start = time.time() 6 func() 7 end = time.time() 8 print('spend %s' % end-start) 9 return inner10 11 @show_time #等
django中间件
目录 中间件概念 自定义中间件 process_request,process_response 中间件概念 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎实用,用不好会影响到
周博磊老师强化学习纲领笔记第二课:无模型的价值函数估计和控制
第三课:Model-free prediction和Model-free control 什么是MDP已知 : 马尔可夫决策过程中它的奖励 \(R\) 以及状态转移概率矩阵 \(P\) 都是暴露给agent的,就是环境是提前提供给你的,你是已知的。 所以我们能够用策略迭代的方法policy iteration和值迭代的
python中的递归函数
一、递归函数的特性 调用自身函数 有一个结束条件 凡是递归都可用循环解决 递归有时效率很底 二、递归函数的使用示例 1.斐波拉契数列的实现 1.1 递归版本 1 #递归版 2 def fibo2(n, first_num=0, second_num=1): 3 if n == 2: 4 return second_num 5 elif n
MySQL入门(7)——表数据的增、删、改
MySQL入门(7)——表数据的增、删、改 插入数据 使用INSERT···VALUES语句插入数据 INSERT语句最常用的格式是INSERT···VALUES: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] 数据表名 [(字段名,...)] VALUES ({值 | DEFAULT},..
连接mysql数据库报错java.sql.SQLException: The server time zone value ?й??????? is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver ....解决方法
报错信息如下: java.sql.SQLException: The server time zone value '?й???????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to u
TensorFlow(1)张量及基本函数
tensor 维数 阶 名字 例子 0 0 标量() s = 1 2 3 1 1 向量() v = [1,2,3] 2 2 矩阵() m = [[1,2,3],[4,5,6],[7,8,9]] n n 张量() t = [[[[[[[[ n个“[” tensorflow的数据类型 tf.int, tf.float …… tf.int 32, tf.float 32, tf.float 64 tf.bool t
keycloak +docker-compose+mysql 启动配置
前言:最近通过jhipster框架了解到Keycloak,然后自己研究通过docker-compose+mysql在自己本地部署keycloak,经过几天的研究在此记录查漏补缺提升自己的理解,如果有什么不对,请底下留言我争取改正。 参考网址: https://github.com/keycloak/keycloak-cont