programing

MySQL, 간단한 함수 만들기

telebox 2023. 8. 10. 18:44
반응형

MySQL, 간단한 함수 만들기

간단한 MySQL 함수를 만들고 싶습니다. MySQL 절차가 있습니다.

CREATE PROCEDURE getUser(gU INT)
   SELECT * FROM Company
   WHERE id_number = gU;

CALL getUser(2);

이것을 MySQL 함수로 만드는 데 도움이 필요합니다.절차에 비해 기능을 사용하는 것의 장점과 단점은 무엇입니까?

이것은 mysql 함수의 예입니다.도움이 되길 바랍니다.(아직 테스트하지 않았지만 작동해야 합니다.)

DROP FUNCTION IF EXISTS F_TEST //
CREATE FUNCTION F_TEST(PID INT) RETURNS VARCHAR
BEGIN
/*DECLARE VALUES YOU MAY NEED, EXAMPLE:
  DECLARE NOM_VAR1 DATATYPE [DEFAULT] VALUE;
  */
  DECLARE NAME_FOUND VARCHAR DEFAULT "";

    SELECT EMPLOYEE_NAME INTO NAME_FOUND FROM TABLE_NAME WHERE ID = PID;
  RETURN NAME_FOUND;
END;//

MySQL 함수 예:

mysql 터미널을 엽니다.

el@apollo:~$ mysql -u root -pthepassword yourdb
mysql>

함수가 이미 있는 경우 해당 함수를 삭제합니다.

mysql> drop function if exists myfunc;
Query OK, 0 rows affected, 1 warning (0.00 sec)

함수 만들기

mysql> create function hello(id INT)
    -> returns CHAR(50)
    -> return 'foobar';
Query OK, 0 rows affected (0.01 sec)

테스트할 간단한 테이블 만들기

mysql> create table yar (id INT);
Query OK, 0 rows affected (0.07 sec)

표 yar에 세 개의 값을 삽입합니다.

mysql> insert into yar values(5), (7), (9);
Query OK, 3 rows affected (0.04 sec)
Records: 3  Duplicates: 0  Warnings: 0

yar에서 모든 값을 선택하고 매번 함수 hello를 실행합니다.

mysql> select id, hello(5) from yar;
+------+----------+
| id   | hello(5) |
+------+----------+
|    5 | foobar   |
|    7 | foobar   |
|    9 | foobar   |
+------+----------+
3 rows in set (0.01 sec)

방금 일어난 일을 언어화하고 내면화합니다.

하나의 매개 변수를 사용하는 hello라는 함수를 만들었습니다.매개 변수가 무시되고 다음을 반환합니다.CHAR(50)'foobar' 값을 포함합니다.yar라는 테이블을 만들고 그 테이블에 세 개의 행을 추가했습니다.select 문은 함수를 실행합니다.hello(5)yar에서 반환되는 각 행에 대해.

변경 시도CREATE FUNCTION F_TEST(PID INT) RETURNS VARCHAR이 부분CREATE FUNCTION F_TEST(PID INT) RETURNS TEXT

다음 줄도 바꿔주세요.

DECLARE NAME_FOUND TEXT DEFAULT "";

그건 작동할 거야.

언급URL : https://stackoverflow.com/questions/14606900/mysql-create-a-simple-function

반응형