MySQL打印函数中变量的值

MySQL打印函数中变量的值,mysql,function,Mysql,Function,我有一个MySQL函数。在这个函数中,我想在它运行时打印变量的值 DELIMITER $$ CREATE DEFINER=`root`@`localhost` FUNCTION `updateCompanyName`(companyName varchar(200)) RETURNS varchar(200) CHARSET latin1 BEGIN declare modifiedCompanyName varchar(200); DECLARE keywordToRem

我有一个MySQL函数。在这个函数中,我想在它运行时打印变量的值

DELIMITER $$

CREATE DEFINER=`root`@`localhost` FUNCTION
  `updateCompanyName`(companyName varchar(200)) RETURNS varchar(200)
  CHARSET latin1 BEGIN

  declare modifiedCompanyName varchar(200); 
  DECLARE keywordToRemove varchar(200); 

  DECLARE cur1 CURSOR FOR SELECT name FROM company_remove_keywords;

  select regex_replace('[^a-zA-Z 0-9]', "",companyName) into modifiedCompanyName;

  OPEN cur1;  
    read_loop: LOOP
      FETCH cur1 INTO keywordToRemove;
      select keywordToRemove;

      select replace_ci(modifiedCompanyName,
             concat(" ",keywordToRemove," ")," ") 
             into modifiedCompanyName;
      select replace_ci(modifiedCompanyName,
             concat(" ",keywordToRemove),"")
             into modifiedCompanyName;
    END LOOP;

  CLOSE cur1; 
  return modifiedCompanyName; 
END
打印值的最佳方式是什么:
keywordToRemove
modifiedCompanyName

您可以创建表(或临时表)来存储调试信息,并向该表插入所需的值

此外,您还可以使用GUI工具(试用版)轻松调试存储过程/函数/触发器。

您可以创建表(或临时表)来存储调试信息,并向该表插入所需的值


此外,您还可以使用GUI工具(试用版)轻松调试存储过程/函数/触发器。

您不能。但是,您可以使用MySQL的信号强制执行错误,然后读取错误输出。您缺少一个continue处理程序。对于调试,我有时会使用相同的主体定义一个存储过程(减去任何
RETURN
语句),然后使用
SELECT
输出调试状态。我想您可以将调试信息写入(临时?)然后从表中读取它。不过,我没有这方面的经验,所以在有人确认这确实有效之前,我不会写这篇文章作为答案。你不能。但是,您可以使用MySQL的信号强制执行错误,然后读取错误输出。您缺少一个continue处理程序。对于调试,我有时会使用相同的主体定义一个存储过程(减去任何
RETURN
语句),然后使用
SELECT
输出调试状态。我想您可以将调试信息写入(临时?)然后从表中读取它。不过,我没有这方面的经验,所以在有人确认这确实有效之前,我不会写这篇文章作为答案。