Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีดึงข้อมูลทั้งหมดของตารางโดยส่งชื่อตารางเป็นพารามิเตอร์ของ Stored Procedure ใน MySQL


สมมติว่าหากเราต้องการดูข้อมูลทั้งหมดของตารางโดยส่งชื่อตารางเป็นพารามิเตอร์ของ Stored Procedure ตัวอย่างต่อไปนี้จะสร้าง Procedure ชื่อ 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)

ตอนนี้ เรียกใช้ Procedure นี้โดยให้ชื่อตารางเป็นพารามิเตอร์ และมันจะแสดงข้อมูลทั้งหมดของตารางนั้น

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)