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

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