2

我有一个 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

打印值的最佳方法是什么:keywordToRemovemodifiedCompanyName

4

1 回答 1

2

您可以创建表(或临时表)来存储调试信息,并将您需要的值插入到该表中。

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

于 2013-01-15T13:16:15.027 回答