테이블 이름을 저장 프로시저의 매개변수로 전달하여 테이블의 모든 레코드를 보려면 다음 예제에서 이름을 허용하는 'details'라는 프로시저를 생성합니다. 테이블을 매개변수로 -
mysql> DELIMITER // mysql> Create procedure details(tab_name Varchar(40)) -> BEGIN -> SET @t:= CONCAT('Select * from',' ',tab_name); -> Prepare stmt FROM @t; -> EXECUTE stmt; -> END // Query OK, 0 rows affected (0.00 sec)
이제 테이블의 이름을 매개변수로 지정하여 이 프로시저를 호출하면 해당 테이블의 모든 레코드가 표시됩니다.
mysql> DELIMITER; mysql> CALL details('student_detail'); +-----------+-------------+------------+ | Studentid | StudentName | address | +-----------+-------------+------------+ | 100 | Gaurav | Delhi | | 101 | Raman | Shimla | | 103 | Rahul | Jaipur | | 104 | Ram | Chandigarh | | 105 | Mohan | Chandigarh | +-----------+-------------+------------+ 5 rows in set (0.02 sec) Query OK, 0 rows affected (0.03 sec)