MySQL에서 저장 프로시저를 사용하면 미리 정의된 SQL 문을 실행할 수 있습니다. 일반적인 요구 사항 중 하나는 테이블 이름을 저장 프로시저에 매개 변수로 전달하여 다른 테이블에서 동적으로 작동할 수 있도록 하는 것입니다.
쿼리의 리터럴 이름을 사용하는 대신 테이블 이름에 변수를 활용하려면 다음을 따르세요. 다음 단계는 다음과 같습니다.
CREATE PROCEDURE `usp_SelectFromTables`( IN TableName VARCHAR(100) )
여기서 TableName은 테이블을 보유할 매개변수입니다. 프로시저에서 사용할 이름입니다.
실행 중에 매개변수 TableName은 변수입니다. 그러나 SQL 문에는 테이블 참조를 위한 문자열이 필요합니다. 변수를 문자열로 변환하려면 CONCAT() 함수를 사용하십시오.
MySQL의 테이블 참조에는 일반적으로 데이터베이스 이름, 마침표 및 테이블이 포함됩니다. 이름. CONCAT() 또는 다음을 사용하여 이 정보를 변수와 연결합니다.
SET @sql_text = CONCAT('SELECT * FROM ', @TableName);
준비된 SQL 문을 동적으로 실행하려면 PREPARE 및 EXECUTE를 사용합니다.
PREPARE stmt FROM @sql_text; EXECUTE stmt;
다음 예를 고려해 보세요. SQL 쿼리는 TableName, cname 및 vname 값을 기반으로 구성됩니다.
SET @cname:='jello'; SET @vname:='dwb'; SET @sql_text = CONCAT('select concept_id,concept_name,',@vname,' from enc2.concept a JOIN enc2.ratings b USING(concept_id) where concept_name like (''%',@cname,'%'') and 3 is not null order by 3 asc'); PREPARE stmt FROM @sql_text; EXECUTE stmt; DEALLOCATE PREPARE stmt;
이 단계를 수행하면 변수를 효과적으로 사용하여 MySQL 저장 프로시저에서 테이블 이름을 지정할 수 있으므로 유연성이 향상되고 재사용이 가능합니다.
위 내용은 MySQL 저장 프로시저에서 테이블 이름에 대한 변수를 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!