24.4 MySQL에 새로운 함수 추가
MySQL에 새로운 기능을 추가하는 방법은 3 가지가 있습니다.
사용자 정의 함수 (UDF) 인터페이스를 사용하여 함수를 추가 할 수 있습니다. 사용자 정의 함수는 오브젝트 파일로 컴파일되고
CREATE FUNCTION
문 및DROP FUNCTION
문을 사용하여 서버에 동적으로 추가 및 삭제됩니다. 섹션 13.7.3.1 "사용자 정의 함수에 대한 CREATE FUNCTION 구문" 을 참조하십시오.함수를 네이티브 (편입) MySQL 함수로 추가 할 수 있습니다. 네이티브 함수는 컴파일 된 mysqld 서버에 내장 된 영구적으로 사용할 수 있습니다.
함수를 추가하는 또 하나의 방법은 저장 기능을 작성하는 것입니다. 이러한 개체 코드를 컴파일하는 것이 아니라 SQL 문을 사용하여 설명합니다. 저장 기능을 설명하는 구문은 여기에서 설명하지 않습니다. 섹션 20.2 "스토어드 루틴 (프로 시저 및 함수) 사용" 을 참조하십시오.
컴파일 된 함수를 만들기위한 각 방법에는 장단점이 있습니다.
사용자 정의 함수를 작성하는 경우, 서버 자체 외에 오브젝트 파일을 설치해야합니다. 함수를 컴파일하여 서버에 배치하는 경우, 그것을 할 필요가 없습니다.
네이티브 함수의 경우 소스 배포판을 변경해야합니다. UDF의 경우는 그 필요는 없습니다. UDF를 바이너리 MySQL 배포에 추가 할 수 있습니다. MySQL의 소스에 액세스 할 필요가 없습니다.
MySQL 배포를 업그레이드하는 경우, UDF 인터페이스가 변경되는 새 버전으로 업그레이드하지 않으면 이전에 설치 한 UDF를 계속 사용할 수 있습니다. 네이티브 함수의 경우 업그레이드 할 때마다 변경을 반복해야합니다.
어떤 방법을 사용하여 새로운 기능을 추가 한 여부에 관계없이이 함수는 ABS()
, SOUNDEX()
등의 네이티브 함수와 마찬가지로 SQL 문에서 호출 할 수 있습니다.
각종 함수에 대한 참조를 서버가 해석하는 방법을 설명하는 규칙 내용은 섹션 9.2.4 "함수 이름의 구문 분석과 해결" 을 참조하십시오.
다음 섹션에서는 UDF 인터페이스 기능 UDF를 작성하기위한 절차 UDF의 오용을 방지하기 위해 MySQL이 할 보안 예방 조치 및 기본 MySQL 함수를 추가하는 방법을 설명합니다.
UDF를 작성하는 방법을 보여주는 소스 코드의 예는 MySQL 소스 배포판에 제공되는 sql/udf_example.cc
파일을 참조하십시오.