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

Lưu trữ giá trị của cột vào biến của thủ tục được lưu trữ trong MySQL

Để khai báo một biến, hãy sử dụng DECLARE trong một thủ tục được lưu trữ trong MySQL. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable2034
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> StudentName varchar(20),
   -> StudentAge int
   -> );
Query OK, 0 rows affected (0.49 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable2034(StudentName,StudentAge) values('Chris',23);
Query OK, 1 row affected (0.10 sec)

mysql> insert into DemoTable2034(StudentName,StudentAge) values('David',21);
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable2034(StudentName,StudentAge) values('Robert',25);
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable2034(StudentName,StudentAge) values('Mike',19);
Query OK, 1 row affected (0.14 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable2034;

Điều này sẽ tạo ra kết quả sau -

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
| 1         | Chris       | 23         |
| 2         | David       | 21         |
| 3         | Robert      | 25         |
| 4         | Mike        | 19         |
+-----------+-------------+------------+
4 rows in set (0.00 sec)

Đây là truy vấn để tạo một thủ tục được lưu trữ và lưu trữ giá trị cột của bảng ở trên trong một biến thủ tục được lưu trữ -

mysql> delimiter //
mysql> create procedure select_into_variable(id int)
   -> begin
   -> declare name varchar(50);
   -> select StudentName into name from DemoTable2034 where StudentId=id;
   -> select concat('Your Name is= ',name);
   -> end
   -> //
Query OK, 0 rows affected (0.09 sec)
mysql> delimiter ;

Gọi thủ tục đã lưu trữ -

mysql> call select_into_variable(4);

Điều này sẽ tạo ra kết quả sau -

+-------------------------------+
| concat('Your Name is= ',name) |
+-------------------------------+
| Your Name is= Mike            |
+-------------------------------+
1 row in set (0.04 sec)
Query OK, 0 rows affected (0.06 sec)