MySQL에서 저장된 프로 시저를 만들려면 CREATE PROCEDURE
문을 사용합니다. 다음은 다음 방법에 대한 단계별 안내서입니다.
CREATE PROCEDURE
및 프로 시저 이름으로 시작하십시오.IN
, OUT
또는 INOUT
과 같은 모드를 가질 수 있으며 각 매개 변수에는 데이터 유형이 필요합니다.BEGIN
및 END
블록으로 둘러싸여 있습니다. 이 블록 내에 절차가 실행되는 SQL 문을 작성합니다.;
)을 명세서 터미네이터로 사용합니다. 그러나 저장된 절차를 만들 때 절차 본문에 사용 된 세미콜론과의 충돌을 피하기 위해이 구분기를 일시적으로 변경해야합니다. 일반적으로 //
또는 $$
대체 구분 제로 사용됩니다.간단한 저장 절차를 만드는 방법의 예는 다음과 같습니다.
<code class="sql">DELIMITER // CREATE PROCEDURE GetEmployeeData( IN employeeID INT ) BEGIN SELECT * FROM employees WHERE id = employeeID; END // DELIMITER ;</code>
이 예에서 GetEmployeeData
employeeID
입력 매개 변수로 취하고 employees
테이블에서 해당 직원의 모든 데이터를 반환하는 절차입니다.
MySQL 저장 절차에는 다양한 유형 및 모드의 매개 변수가 포함될 수 있습니다. 매개 변수는 세 가지 모드로 분류 할 수 있습니다.
IN
매개 변수를 사용하면 값을 절차에 전달할 수 있습니다. 절차는이 값을 읽을 수 있지만 수정할 수는 없습니다.OUT
매개 변수를 사용하면 절차가 호출 환경에 값을 반환 할 수 있습니다. 프로 시저는 OUT
매개 변수의 값을 수정할 수 있으며 프로 시저 실행 후에 수정 된 값에 액세스 할 수 있습니다.INOUT
매개 변수는 IN
and OUT
의 속성을 결합합니다. 값을 절차에 전달할 수 있으며 절차를 통해 값을 수정하고 호출 환경으로 반환 할 수 있습니다. 매개 변수에는 INT
, VARCHAR
, DATE
등과 같은 데이터 유형이있을 수 있으며,이를 선언 할 때 지정해야합니다. 다음은 세 가지 유형의 매개 변수가있는 저장 절차의 예입니다.
<code class="sql">DELIMITER // CREATE PROCEDURE ProcessEmployeeData( IN empID INT, OUT empName VARCHAR(100), INOUT empSalary DECIMAL(10, 2) ) BEGIN SELECT first_name, last_name INTO empName FROM employees WHERE id = empID; UPDATE employees SET salary = empSalary 1000 WHERE id = empID; SELECT salary INTO empSalary FROM employees WHERE id = empID; END // DELIMITER ;</code>
MySQL에서 기존 저장 ALTER PROCEDURE
문을 사용합니다. 그러나 ALTER PROCEDURE
보안 컨텍스트 또는 SQL 보안과 같은 특성과 같은 절차의 특정 속성을 변경하는 것으로 제한됩니다. 절차 내에서 실제 코드 또는 논리를 수정하려면 DROP PROCEDURE
사용하고 CREATE PROCEDURE
해야합니다.
다음은 다음과 같은 방법입니다.
<code class="sql">DROP PROCEDURE IF EXISTS ProcedureName;</code>
<code class="sql">DELIMITER // CREATE PROCEDURE ProcedureName( -- Parameters ) BEGIN -- New procedure body END // DELIMITER ;</code>
예를 들어, GetEmployeeData
절차를 업데이트하여 직원의 첫 번째 및 성만 반환하려면 다음을 수행합니다.
<code class="sql">DROP PROCEDURE IF EXISTS GetEmployeeData; DELIMITER // CREATE PROCEDURE GetEmployeeData( IN employeeID INT ) BEGIN SELECT first_name, last_name FROM employees WHERE id = employeeID; END // DELIMITER ;</code>
저장 절차는 MySQL에서 데이터베이스 관리에 몇 가지 이점을 제공합니다.
이러한 이점을 활용하여 저장된 절차는 MySQL에서 데이터베이스 관리의 효율성과 보안을 크게 향상시킬 수 있습니다.
위 내용은 Create Procedure 문을 사용하여 MySQL에서 저장된 프로 시저를 어떻게 작성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!