Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

테이블 이름을 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)