해결: MySql 데이터베이스에서 데이터 가져오기 실패

1. 실패 정보

Query:
/*!50003 CREATE DEFINER=`workbase`@`%` FUNCTION `getParentList`(rootId INT) RETURNS varchar(1024) CHARSET utf8
BEGIN
  DECLARE p_id INT;
  DECLARE p_sectionName VARCHAR(255);
  DECLARE result VARCHAR(1024) DEFAULT '';
  
  WHILE rootId > 0 DO 
    SELECT 
      parentId, sectionName INTO p_id, p_sectionName 
    FROM `basic_section` WHERE rootId = id ;
    IF result = '' THEN 
	SET result = p_sectionName;
    ELSE 
	SET result = CONCAT(p_sectionName, '-', result);
    END IF ;
    SET rootId = p_id;    
  END WHILE ;  
  RETURN result ;  
 END */

Error occured at:2019-09-12 10:47:15
Line no.:18952
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 variable)




2. 솔루션:


다음 문장을 수행합니다.
set global log_bin_trust_function_creators=TRUE;
이것은 bin-log를 켜면 함수가 1인지 아닌지를 지정해야 합니다. 1) DETERMINISTIC이 확실하지 않은 2) NO SQL에는 SQL 문장이 없습니다. 물론 데이터를 수정하지 않습니다 3) READS SQL 데이터는 데이터를 읽을 뿐입니다. 4) MODIFIES SQL 데이터는 데이터를 수정할 수 없습니다 5) CONTAINS SQL에는 SQL 문장이 포함되어 있습니다. 그 중 기능에는 DETERMINISTIC, NO SQL과 READS SQL 데이터만 지원됩니다.만약 우리가 bin-log를 열었다면, 우리의function에 매개 변수를 지정해야 합니다.

좋은 웹페이지 즐겨찾기