함수 생성 명령을 사용하여 함수를 생성할 수 있습니다. 구문은 다음과 같습니다 -
delimiter // DROP FUNCTION if exists yourFunctionName; CREATE FUNCTION yourFunctionName(Parameter1,...N) returns type BEGIN # declaring variables; # MySQL statementns END // delimiter ;
먼저 여기에서 테이블을 만들고 테이블에 몇 가지 레코드를 추가합니다. 그 후 간단한 함수가 생성됩니다. 다음은 테이블을 생성하는 쿼리입니다 -
mysql> create table ViewDemo −> ( −> Id int, −> Name varchar(200), −> Age int −> ); Query OK, 0 rows affected (0.58 sec)
insert 명령을 사용하여 테이블에 레코드를 삽입합니다. 쿼리는 다음과 같습니다 -
mysql> insert into ViewDemo values(1,'John',23); Query OK, 1 row affected (0.15 sec) mysql> insert into ViewDemo values(2,'Sam',24); Query OK, 1 row affected (0.15 sec)
select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> select *from ViewDemo;
다음은 출력입니다 -
+------+------+------+ | Id | Name | Age | +------+------+------+ | 1 | John | 23 | | 2 | Sam | 24 | +------+------+------+ 2 rows in set (0.00 sec)
이제 정수 매개변수를 사용하고 문자열을 반환하는 함수를 만들 것입니다. 이 함수의 목적은 주어진 id로 레코드를 검색하는 것입니다. 주어진 id가 테이블 id와 일치하면 이름을 반환하고 그렇지 않으면 찾을 수 없음과 같은 오류 메시지를 표시합니다.
기능은 다음과 같습니다 -
mysql> SET GLOBAL log_bin_trust_function_creators = 1; Query OK, 0 rows affected (0.00 sec) mysql> drop function if exists searchRecord; -> -> create function searchRecord(yourId int) returns char(100) -> begin -> declare Name1 char(100) default "No Name Found For This Id"; -> select Name into Name1 from ViewDemo where Id =yourId; -> return Name1; -> end // Query OK, 0 rows affected (0.21 sec) Query OK, 0 rows affected (0.33 sec) mysql> delimiter ;
이제 주어진 id로 함수가 작동하는지 확인하십시오.
사례 1 − 주어진 id가 존재할 때.
쿼리는 다음과 같습니다 -
mysql> select searchRecord(2) as Found;
다음은 출력입니다 -
+-------+ | Found | +-------+ | Sam | +-------+ 1 row in set (0.00 sec)
사례 2 - 주어진 id가 없을 때.
쿼리는 다음과 같습니다 -
mysql> select searchRecord(100) as Found;
다음은 레코드가 없음을 표시하는 출력입니다. −
+---------------------------+ | Found | +---------------------------+ | No Name Found For This Id | +---------------------------+ 1 row in set (0.00 sec)