> 데이터 베이스 > MySQL 튜토리얼 > MySQL 저장 프로시저에서 동적 SQL을 어떻게 사용할 수 있습니까?

MySQL 저장 프로시저에서 동적 SQL을 어떻게 사용할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-21 17:50:09
원래의
478명이 탐색했습니다.

How Can I Use Dynamic SQL in MySQL Stored Procedures?

MySQL 저장 프로시저에서 동적 SQL 사용

MySQL 버전 5.0.13 이상에서는 저장 프로시저 내에서 동적 SQL을 구현할 수 있습니다.

동적 SQL 문 작성:

동적 SQL을 작성하려면 명령문에서 CONCAT() 함수는 문자열을 연결하고 SQL 문을 동적으로 생성하는 데 사용됩니다. 예는 다음과 같습니다.

SET @s = CONCAT('SELECT ',col,' FROM ',tbl );
로그인 후 복사

위 예에서 @s에는 동적 SQL 문이 포함됩니다.

SELECT col FROM tbl
로그인 후 복사

동적 문 준비 및 실행:

동적 SQL 문이 작성되면 준비 작업이 필요합니다. 실행됨:

PREPARE stmt FROM @s;
EXECUTE stmt;
로그인 후 복사

준비된 문 할당 해제:

실행 후 준비된 문을 할당 해제하여 리소스를 해제해야 합니다.

DEALLOCATE PREPARE stmt;
로그인 후 복사

제한사항:

동적 SQL은 저장 프로시저에서는 지원되지만 함수나 트리거에서는 지원되지 않습니다.

예:

다음 저장 프로시저는 동적 SQL을 보여줍니다.

delimiter // 
CREATE PROCEDURE dynamic(IN tbl CHAR(64), IN col CHAR(64))
BEGIN
    SET @s = CONCAT('SELECT ',col,' FROM ',tbl );
    PREPARE stmt FROM @s;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END
//
delimiter ;
로그인 후 복사

위 내용은 MySQL 저장 프로시저에서 동적 SQL을 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿