>  기사  >  데이터 베이스  >  mysql 데이터베이스의 저장 프로시저에 대한 자세한 설명

mysql 데이터베이스의 저장 프로시저에 대한 자세한 설명

PHPz
PHPz원래의
2023-04-17 16:38:161351검색

1. 소개

MySQL은 SQL 문을 사용하여 데이터를 조작하는 널리 사용되는 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 저장 프로시저는 반복적으로 사용하고 호출할 수 있는 SQL 문의 모음입니다. 이 기사에서는 MySQL 데이터베이스에서 저장 프로시저의 생성, 호출 및 인스턴스 작업을 소개합니다.

2. MySQL 저장 프로시저 생성

  1. 저장 프로시저 생성

MySQL에서 저장 프로시저를 생성하려면

CREATE PROCEDURE procedure_name ([parameter_list])
BEGIN
    -- put your SQL statements here;
END;
  • procedure_name: 저장 프로시저 이름을 사용하세요. procedure_name:存储过程名称。
  • parameter_list:参数列表,可以为空。
  • BEGINEND:SQL语句的开始和结束符。
  1. 存储过程的参数

存储过程可以包含0个或多个参数,语法如下:

CREATE PROCEDURE procedure_name (IN|OUT|INOUT parameter_name data_type)

分别表示传入、传出和传入传出参数类型,parameter_namedata_type

parameter_list: 매개변수 목록이며 비어 있을 수 있습니다.
  1. BEGINEND: SQL 문의 시작 및 끝 문자입니다.

저장 프로시저의 매개 변수

저장 프로시저는 0개 이상의 매개 변수를 포함할 수 있습니다. 구문은 다음과 같습니다.

CREATE PROCEDURE get_employee (IN employee_id INT)
BEGIN
    SELECT * FROM employee WHERE id = employee_id;
END;
는 각각 수신, 발신 및 수신 및 발신 매개 변수 유형을 나타냅니다. parameter_name 및 <code>data_type은 각각 매개변수 이름과 데이터 유형을 나타냅니다.

다음은 매개변수를 사용하여 저장 프로시저를 생성하는 예입니다.
    CALL procedure_name (parameter_list);
  1. 3. MySQL 저장 프로시저 호출
저장 프로시저를 사용하면 MySQL에서 복잡한 비즈니스 로직을 구현할 수 있습니다. 저장 프로시저를 호출하려면 다음 문을 사용할 수 있습니다.
    CALL get_employee(1);
  1. 예를 들어 위에서 생성한 저장 프로시저를 사용하는 경우 다음 문을 사용하여 호출할 수 있습니다.
  2. CREATE PROCEDURE transfer(IN from_account INT, IN to_account INT, IN amount DECIMAL(10,2))
    BEGIN
        DECLARE from_balance DECIMAL(10,2);
        DECLARE to_balance DECIMAL(10,2);
    
        START TRANSACTION;
    
        SELECT balance INTO from_balance FROM account WHERE id = from_account FOR UPDATE;
        SELECT balance INTO to_balance FROM account WHERE id = to_account FOR UPDATE;
    
        IF from_balance < amount THEN
            ROLLBACK;
            SELECT 'Insufficient balance' AS message;
        ELSE
            UPDATE account SET balance = from_balance - amount WHERE id = from_account;
            UPDATE account SET balance = to_balance + amount WHERE id = to_account;
            COMMIT;
            SELECT 'Transfer succeed!' AS message;
        END IF;
    END;
4. MySQL 저장 프로시저 예시

를 살펴보겠습니다. 계좌 이체 작업을 구현하기 위한 실제 예는 다음과 같습니다.

전송 저장 프로시저 생성

🎜
CALL transfer(1, 2, 100);
🎜🎜저장 프로시저 호출🎜🎜🎜다음 명령문을 사용하여 저장 프로시저를 호출할 수 있습니다.🎜rrreee🎜계정 ID 1을 가진 사용자로부터 계정을 가진 사용자에게 100위안 전송 아이디 2. 🎜🎜위는 MySQL 데이터베이스 저장 프로시저의 기본 작업입니다. 물론 실제 개발에서는 저장 프로시저를 사용해야 하는 시나리오가 더 많으며 개발자는 실제 필요에 따라 이를 설계하고 호출해야 합니다. 🎜

위 내용은 mysql 데이터베이스의 저장 프로시저에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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