>  기사  >  데이터 베이스  >  mysql 저장 프로시저 실행

mysql 저장 프로시저 실행

WBOY
WBOY원래의
2023-05-08 16:58:381929검색

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템으로, 다른 관계형 데이터베이스 관리 시스템과 비교할 때 MySQL은 가장 일반적으로 사용되는 시스템 중 하나입니다. MySQL은 저장 프로시저를 통해 복잡한 데이터 처리 및 비즈니스 로직을 수행하여 데이터베이스의 성능과 효율성을 향상시킬 수 있습니다. 다음은 MySQL 저장 프로시저를 실행하는 방법을 설명합니다.

  1. 저장 프로시저 만들기

MySQL에서는 "CREATE PROCEDURE" 문을 사용하여 저장 프로시저를 만들 수 있습니다. 구문은 다음과 같습니다.

CREATE PROCEDURE procedure_name ([IN / OUT / INOUT] parameter_name data_type, [...])
BEGIN
    -- 存储过程体
END;

위치:

  • procedure_name: 저장 프로시저의 이름입니다.
  • IN/OUT/INOUT: 저장 프로시저의 매개변수 유형, IN은 입력 매개변수를 나타내고, OUT은 출력 매개변수를 나타내고, INOUT은 입력 및 출력 매개변수를 나타냅니다.
  • parameter_name: 매개변수의 이름입니다.
  • data_type: 매개변수의 데이터 유형으로, MySQL에서 지원하는 모든 데이터 유형이 될 수 있습니다.
  • 저장 프로시저 본문: 저장 프로시저가 실제로 실행하는 코드 블록

예를 들어 다음은 간단한 저장 프로시저의 예입니다.

CREATE PROCEDURE hello_world()
BEGIN
    SELECT 'Hello, World!';
END;
  1. 저장 프로시저 실행

"CALL" 문을 사용해야 합니다. 저장 프로시저를 실행합니다. 구문은 다음과 같습니다.

CALL procedure_name([parameter_value, ...]);

위치:

  • procedure_name: 실행할 저장 프로시저의 이름입니다.
  • parameter_value: 저장 프로시저에 전달될 매개변수 값입니다.

예를 들어 다음 문을 사용하여 위에서 생성한 hello_world() 저장 프로시저를 실행할 수 있습니다.

CALL hello_world();

실행 결과는 다음과 같습니다.

+-------------+
| Hello, World! |
+-------------+
| Hello, World! |
+-------------+
1 row in set (0.00 sec)
  1. IN 매개 변수 사용

IN 매개 변수 사용은 통과할 수 있습니다. 특정 작업을 수행하기 위한 저장 프로시저의 값입니다. 예를 들어 다음 저장 프로시저에서는 IN 매개 변수를 사용하여 지정된 사용자의 세부 정보를 찾습니다.

CREATE PROCEDURE get_user_details(IN user_id INT)
BEGIN
    SELECT * FROM users WHERE id = user_id;
END;

저장 프로시저를 실행할 때 사용자 ID를 저장 프로시저에 전달해야 합니다. 예를 들면 다음과 같습니다.

CALL get_user_details(1);

실행 결과는 다음과 같습니다.

+----+----------+---------+------------+
| id | username | country | created_at |
+----+----------+---------+------------+
|  1 | john     | USA     | 2022-05-01 |
+----+----------+---------+------------+
1 row in set (0.00 sec)
  1. OUT 매개변수 사용

OUT 매개변수를 사용하면 저장 프로시저에서 값을 반환할 수 있습니다. 예를 들어, 다음 저장 프로시저는 OUT 매개변수를 사용하여 지정된 사용자의 세부 정보를 반환합니다.

CREATE PROCEDURE get_user_details(IN user_id INT, OUT username TEXT, OUT country TEXT, OUT created_at DATE)
BEGIN
    SELECT username, country, created_at INTO username, country, created_at FROM users WHERE id = user_id;
END;

이 저장 프로시저를 실행할 때 사용자 ID를 전달해야 하며 저장 프로시저는 다음에 해당하는 사용자의 세부 정보를 반환합니다. 그 아이디. 예를 들면 다음과 같습니다.

CALL get_user_details(1, @username, @country, @created_at);
SELECT @username, @country, @created_at;

실행 결과는 다음과 같습니다.

+----------+---------+------------+
| @username | @country | @created_at |
+----------+---------+------------+
| john     | USA     | 2022-05-01 |
+----------+---------+------------+
1 row in set (0.00 sec)
  1. INOUT 매개변수 사용

INOUT 매개변수를 사용하면 저장 프로시저에 매개변수를 전달하고 해당 매개변수를 사용하여 값을 반환할 수 있습니다. 예를 들어 다음 저장 프로시저에서는 INOUT 매개 변수를 사용하여 지정된 사용자의 세부 정보를 업데이트합니다.

CREATE PROCEDURE update_user_details(INOUT user_id INT, IN username TEXT, IN country TEXT, IN created_at DATE)
BEGIN
    UPDATE users SET username = username, country = country, created_at = created_at WHERE id = user_id;
END;

이 저장 프로시저를 실행하는 동안 사용자 ID와 업데이트할 세부 정보를 전달해야 합니다. 예를 들면 다음과 같습니다.

SET @user_id = 1;
CALL update_user_details(@user_id, 'jane', 'UK', '2022-05-01');
SELECT @user_id;

실행 결과는 다음과 같습니다.

+---------+
| @user_id |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)

보시다시피 저장 프로시저가 사용자 세부 정보를 성공적으로 업데이트하고 사용자 ID를 반환했습니다.

저장 프로시저를 이용하면 MySQL에서 효율적인 데이터 처리와 비즈니스 로직을 수행할 수 있습니다. 이 문서에서는 다양한 유형의 저장 프로시저를 만들고, 실행하고, 사용하는 방법을 설명합니다. 저장 프로시저를 사용하면 MySQL 데이터베이스의 성능과 효율성이 크게 향상되고 비즈니스에 더 나은 지원을 제공할 수 있습니다.

위 내용은 mysql 저장 프로시저 실행의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.