• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    2. 데이터 조작 문
    3. MySQL 트랜잭션과 잠금 문
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    7. 데이터베이스 관리 문
    1. 계정 관리 문
    2. 테이블 유지 보수 문
    3. 플러그인 및 사용자 정의 함수 문
    1. 사용자 정의 함수에 대한 CREATE FUNCTION 구문
    2. DROP FUNCTION 구문
    3. INSTALL PLUGIN 구문
    4. UNINSTALL PLUGIN 구문
    4. SET 구문
    5. SHOW 구문
    6. 기타 관리 문
    8. MySQL 유틸리티 문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.7.3.1 사용자 정의 함수에 대한 CREATE FUNCTION 구문

CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL}
    SONAME shared_library_name 

사용자 정의 함수 (UDF)는 ABS() 와 CONCAT() 등의 네이티브 (기본 제공) MySQL 함수처럼 작동하는 새로운 함수에 의해 MySQL를 확장하기위한 방법입니다.

function_name 은이 함수를 호출하는 SQL 문에서 사용되는 이름입니다. RETURNS 절은 함수의 반환 형식을 나타냅니다. DECIMAL 은 RETURNS 뒤의 정당한 값이지만, 현재 DECIMAL 함수는 문자열 값을 반환하므로 STRING 함수와 같이 기술하십시오.

shared_library_name 이 함수를 구현하는 코드를 포함하는 공유 객체 파일의 기본 이름입니다. 이 파일은 플러그인 디렉토리에 존재해야합니다. 이 디렉토리는 plugin_dir 시스템 변수의 값을 얻을 수 있습니다. 자세한 내용은 섹션 24.3.2.5 "사용자 정의 함수의 컴파일 및 설치" 를 참조하십시오.

함수를 작성하려면 mysql 데이터베이스에 대한 INSERT 권한이 필요합니다. 이것이 필요한 것은 CREATE FUNCTION 의해 함수의 이름, 형태, 및 공유 라이브러리 명을 기록 mysql.func 시스템 테이블에 행이 추가되기 때문입니다. 이 테이블이 존재하지 않는 경우, mysql_upgrade 명령을 실행하여 작성하도록하십시오. 섹션 4.4.7 "mysql_upgrade - MySQL 테이블 체크 및 업그레이드" 를 참조하십시오.

활성 함수는 CREATE FUNCTION 을 사용하여로드되고 있고, DROP FUNCTION 을 사용하여 삭제되지 않은 함수입니다. 모든 활성 함수는 서버가 시작할 때마다 다시로드됩니다 만, --skip-grant-tables 옵션을 지정해 mysqld를 시작하면 다릅니다. 이 경우, UDF 초기화가 생략되고 UDF는 사용할 수 없습니다.

사용자 정의 함수를 작성하기위한 지침은 섹션 24.3.2 "새로운 사용자 정의 함수 추가" 를 참조하십시오. UDF의 메카니즘이 기능하려면, 함수를 C 또는 C ++ (또는 C 호출 규칙을 사용할 수있는 다른 언어)로 작성해야 운영 체제가 동적로드를 지원해야하며, 또한 mysqld를 (정적 아니라) 동적으로 컴파일하고있을 필요가 있습니다.

AGGREGATE 함수는 SUM 이나 COUNT() 등의 기본 MySQL 집계 (요약) 함수와 동일하게 작동합니다. AGGREGATE 가 작동하려면 mysql.func 테이블에 type 컬럼을 포함해야합니다. mysql.func 테이블에 컬럼이 포함되지 않은 경우 mysql_upgrade 프로그램을 실행하여 작성하도록하십시오 ( 섹션 4.4.7 "mysql_upgrade - MySQL 테이블 체크 및 업그레이드" 를 참조하십시오).

참고

UDF에 연결된 공유 라이브러리를 업그레이드하려면 DROP FUNCTION 문을 발행하여 공유 라이브러리를 업그레이드 한 후, CREATE FUNCTION 문을 실행합니다. 먼저 공유 라이브러리를 업그레이드 한 후 DROP FUNCTION 을 사용하면 서버가 충돌 할 가능성이 있습니다.


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved