Home > Database > Mysql Tutorial > mysql用户自定义函数实例与部分问题解决方法

mysql用户自定义函数实例与部分问题解决方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-07 16:18:26
Original
1065 people have browsed it

一、查看创建函数的功能是否开启: mysql show variables like '%func%'; +-----------------------------------------+-------+ | Variable_name | Value | +-----------------------------------------+-------+ | log_bin_trust_function_creators | ON |

   一、查看创建函数的功能是否开启:

  mysql> show variables like '%func%';

  +-----------------------------------------+-------+

  | Variable_name | Value |

  +-----------------------------------------+-------+

  | log_bin_trust_function_creators | ON |

  +-----------------------------------------+-------+

  1 row in set (0.02 sec)

  二、如果Value处值为OFF,,则需将其开启。

  mysql> set global log_bin_trust_function_creators=1;

  use app02

  delimiter //

  mysql>DROP FUNCTION IF EXISTS `testhanshu`;

  CREATE FUNCTION `testhanshu`(`tustate` int)

  RETURNS varchar(2000)

  BEGIN

  declare oneAddr varchar(200) default '';

  declare allAddr varchar(2000) default '';

  DECLARE done INT DEFAULT FALSE;

  declare curl CURSOR for select utruename from tsys_user where ustate = tustate;

  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

  open curl;

  REPEAT

  FETCH curl INTO oneAddr;

  IF NOT done THEN

  set oneAddr = CONCAT(oneAddr, ';');

  set allAddr = CONCAT(allAddr, oneAddr);

  END IF;

  UNTIL done END REPEAT;

  close curl;

  RETURN allAddr;

  END;

  mysql>select testhanshu(1);

  在使用MySql自己定义的函数时,出现错误java.sql.SQLException: 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)

  解决办法有三种:

  1. 登录MySql客户端,执行: SET GLOBAL log_bin_trust_function_creators = 1;

  2.在登录MySQL服务器是,在服务启动时加上 “--log-bin-trust-function-creators=1 ”参数并设置为1。

  3.在my.ini(my.cnf)中的[mysqld]区段中加上 log-bin-trust-function-creators=1。

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
MySQL stops process
From 1970-01-01 08:00:00
0
0
0
Error when installing mysql on linux
From 1970-01-01 08:00:00
0
0
0
phpstudy cannot start mysql?
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template