티스토리 뷰
unction 을 드디어 사용할 일이 생겼다.
간단한 Sample 을 남긴다.
(Toad 에서는 아래 코드 입력 후, F5 를 누르면 결과 확인까지 가능하다.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | DROP FUNCTION IF EXISTS dbname.functionname; CREATE FUNCTION dbname.`functionname`(intput1 INT, intput2 INT) RETURNS INT(11) BEGIN DECLARE p_result INT(11); DECLARE p_input1 INT; DECLARE p_input2 INT; SET p_input1 = intput1; SET p_input2 = intput2; SELECT AA.filed1 INTO p_result FROM ( SELECT @RNUM := @RNUM + 1 AS ROWNUM, filed1 FROM dbname.table, (SELECT @RNUM := 0) R WHERE filed2 <= p_input1 AND filed3 = p_input2 ) AA WHERE AA.ROWNUM < 2 ; RETURN p_result; END; SELECT dbname.functionname(input1, input2); | cs |
오류 발생!
어라? 분명히 정상적인 문장 같은데, function 이 만들어지지 않는다.
1시간 가량 웹 서핑 결과, 해결방법을 찾았다.
# 오류 메시지
MySQL Database Error: 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 | show global variables like 'log_bin_trust_function_creators'; | cs |
-> OFF 일 경우, 위와 같은 오류 메시지가 발생하며, ON 으로 변경을 해야지만, function 생성이 가능하다.
1 2 | SET GLOBAL log_bin_trust_function_creators = 1; # ON SET GLOBAL log_bin_trust_function_creators = 2; # OFF | cs |
# vi /etc/my.cnf
[mysqld]
log_bin_trust_function_creators=1
[참고 사이트]
Python (파이썬) 사용자 라이브러리 추가 방법
[출처] MySQL Function Sample|작성자 tius1234
'program' 카테고리의 다른 글
mysql - 행 번호 매기기 (0) | 2017.04.06 |
---|---|
mysql function Sample (0) | 2017.03.27 |
mysql 파티션 테이블 (0) | 2017.03.15 |
[MySQL] DB 데이터 크기, 여유공간 확인 (0) | 2017.02.22 |
[MS-SQL] 키 입력 기준 초,중,종성 분리 (0) | 2017.02.09 |