如何通过将表名作为 MySQL 存储过程的参数来获取该表的所有记录?
假设我们想通过将表的名称作为存储过程的参数来查看表的全部记录,那么以下示例将创建一个名为“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)
广告