Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào tôi có thể lấy tất cả các bản ghi của một bảng bằng cách chuyển tên của nó làm tham số của thủ tục lưu trữ MySQL?


Giả sử nếu chúng ta muốn xem tất cả các bản ghi của bảng bằng cách chuyển tên của nó làm tham số của một thủ tục được lưu trữ thì ví dụ sau sẽ tạo một thủ tục có tên 'chi tiết' chấp nhận tên của bảng dưới dạng tham số của nó -

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)

Bây giờ gọi thủ tục này bằng cách đặt tên của bảng làm tham số của nó và nó sẽ hiển thị tất cả các bản ghi của bảng đó.

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)