Heim > Datenbank > MySQL-Tutorial > mysql用户自定义函数实例与部分问题解决方法

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 16:18:26
Original
1066 Leute haben es durchsucht

一、查看创建函数的功能是否开启: 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。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
So ändern Sie MySQL in MySQL
Aus 1970-01-01 08:00:00
0
0
0
MySQL-Startfehler unter Centos
Aus 1970-01-01 08:00:00
0
0
0
MySQL stoppt den Prozess
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage