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

IN 매개변수를 사용하여 MySQL 저장 프로시저를 생성하려면 어떻게 해야 합니까?


이해하기 위해 다음 값을 갖는 'student_info'라는 테이블을 사용하고 있습니다 -

mysql> Select * from student_info;
+-----+---------+------------+------------+
| id  | Name    | Address    | Subject    |
+-----+---------+------------+------------+
| 101 | YashPal | Amritsar   | History    |
| 105 | Gaurav  | Jaipur     | Literature |
| 110 | Rahul   | Chandigarh | History    |
| 125 | Raman   | Shimla     | Computers  |
+------+--------+------------+------------+
4 rows in set (0.00 sec)

이제 다음 쿼리를 사용하여 이름을 매개변수로 제공하여 특정 학생의 모든 세부정보를 표시하는 IN 매개변수가 있는 저장 프로시저를 생성합니다.

mysql> DELIMITER // ;
mysql> Create PROCEDURE detail(IN S_Name VARCHAR(20))
    -> BEGIN
    -> SELECT * From Student_info WHERE Name = S_Name;
    -> END //
Query OK, 0 rows affected (0.16 sec)
mysql> DELIMITER ;

S_Name은 저장 프로시저 'detail'의 IN 매개변수입니다. 학생 이름 'Gaurav'의 모든 세부 정보를 보려면 다음 쿼리를 사용하여 수행할 수 있습니다. -

mysql> CALL detail('Gaurav');
+-----+--------+---------+------------+
| id  | Name   | Address | Subject    |
+-----+--------+---------+------------+
| 105 | Gaurav | Jaipur  | Literature |
+-----+--------+---------+------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

mysql> CALL detail('Raman');
+-----+-------+---------+-----------+
| id  | Name  | Address | Subject   |
+-----+-------+---------+-----------+
| 125 | Raman | Shimla  | Computers |
+-----+-------+---------+-----------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)