怎样用MySQL创建function

以前使用SQL SERVER的时候经常用function,对一些数据的处理比较方便,现在数据库转移到mysql上以后,同样也希望能保留相同的功能,庆幸的是mysql也支持function,现来分享下在mysql中怎样创建function

工具/原料

MySQL

MySQL Workbench

方法/步骤

1在MySQL中创建function的写法和SQL
SERVER还是有区别的,先看一下在MySQL中正确的写法是什么样,在这个function中目的是返回根据传进年龄参数计算出同龄人有多少,并将结果返回

调用我们刚创建的function,从结果中可以看出我们自定义的function正确执行了,下面来讲讲在MySQL创建function的时候需要注意的事项

DELIMITER的用法就不再多述了,跟在存储过程中的用法一样,我在分享如何创建存储过程中有过描述??

此处需要特别注意,传进的参数与数据库字段不能一样,我之前就是因为没注意这里导致function一直不能按照理想的状态执行

在这步我们将参数和数据库字段定义的一样,来看看这样创建的function会返回什么样的值

虽然function也能成功创建,但是在调用的时候发现返回值不是我们想要的那种值,function没有按我们的意愿正常工作,因此还是要特别提醒下:传进的参数与数据库字段不能一样

mysql中定义变量倒是比sql
server简单不少,不用声明直接用就可以

修改function的处理方式需要先执行drop,然后在create,直接用alter报错,存储过程也有同样的问题,这里不知道是不是有直接修改的办法我还没查到,欢迎交流

时间: 2024-11-05 14:21:19

怎样用MySQL创建function的相关文章

mysql 创建函数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_f

mysql 创建函数的时候 报错 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)ERROR 1418 (HY000

如何在开启了log-bin的MySQL Server中创建FUNCTION

在MySQL主从复制机器的master的数据库中创建function,报出如下错误: Error Code: 1418. 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 va

MySQL 创建函数(Function)

目标 怎么样MySQL创建数据库功能(Function) 语法 CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,參数是可选的 RETURNS type [ characteristic ...] routine_body CREATE FUNCTION 用来创建函数的keyword: func_name 表示函数的名称: func_parameters为函数的參数列表,參数列表的形式为:[IN|OUT|INOUT] param_na

MySQL创建方法错误:This function has none of DETERMINISTIC, NO SQL

创建function时 出错信息: 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) 原因: 这是我们开启了bin-

mysql 创建view,function,procudure的注意事项

创建 view 会有 DEFINER=admin@localhost 可以通过Navicat修改,设计View-->adanced修改创建 function 会有 DEFINER=admin@localhost 可以通过Navicat修改,双击函数-->adanced修改存储过程 会有 DEFINER=admin@localhost 可以通过Navicat修改,双击函数-->adanced修改 show create event event_awr_resetpartition SHOW

MySQL创建函数报“ERROR 1418 ”错误,不能创建函数

MySQL创建函数报ERROR 1418错误,不能创建函数,根据官方提示是说,不能创建函数可能是一个安全设置方面的配置或功能未开启原因,下面我们一起来看. 错误 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

MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法

MySQL开启bin-log后,调用存储过程或者函数以及触发器时,会出现错误号为1418的错误: 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_creat

mysql创建自定义函数与存储过程

mysql创建自定义函数与存储过程 一 创建自定义函数 在使用mysql的过程中,mysql自带的函数可能不能完成我们的业务需求,这时就需要自定义函数,例如笔者在开发过程中遇到下面这个问题 mysql表结构如下 DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `pic` varchar(50) NOT NULL, `hashcode` varchar

mysql创建用户两次授权

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'     ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'     ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION; mysql> GRANT RELOAD,