如何將我的表名作為 MySQL 儲存過程的引數進行傳遞以獲取全部記錄?
假設我們需要檢視某個表的全部記錄,但將表名作為儲存過程的引數進行傳遞,那麼以下示例將會建立一個名為“詳情”的過程,該過程會將表名作為其引數來接受 -
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)
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP