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

저장 프로시저에서 준비된 문을 어떻게 사용할 수 있습니까?

<시간/>

저장 프로시저에서 준비된 명령문을 사용하려면 BEGIN 및 END 블록 내부에 작성해야 합니다. 이를 이해하기 위해 테이블 ​​이름을 저장 프로시저의 매개 변수로 전달하여 테이블에서 모든 레코드를 가져올 수 있는 예제를 만들고 있습니다.

예시

mysql> DELIMITER //
mysql> Create procedure tbl_detail(tab_name Varchar(40))
    -> BEGIN
    -> SET @A:= CONCAT('Select * from',' ',tab_name);
    -> Prepare stmt FROM @A;
    -> EXECUTE stmt;
    -> END //
Query OK, 0 rows affected (0.00 sec)

이제 테이블의 이름을 매개변수로 지정하여 이 프로시저를 호출하면 해당 테이블의 모든 레코드가 표시됩니다.

mysql> DELIMITER;
mysql> CALL tbl_detail('Student’);
+------+--------+
| Id   | Name   |
+------+--------+
|    1 | Ram    |
|    2 | Shyam  |
|    3 | Gaurav |
+------+--------+
3 rows in set (0.00 sec)
Query OK, 0 rows affected (0.03 sec)