如何透過將表名作為 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)

更新於:2020-06-22

284 次瀏覽

開啟你的 職業發展

完成本課程即獲認證

開始學習
廣告
© . All rights reserved.