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

วิธีเขียนฟังก์ชันเก็บ MySQL เพื่ออัปเดตข้อมูลในตาราง


ฟังก์ชัน (Function) เหมาะสำหรับการคืนค่าผลลัพธ์ ดังนั้นเมื่อสร้างฟังก์ชันเก็บเพื่อจัดการตาราง เช่น INSERT หรือ UPDATE จะคล้ายกับ Stored Procedure มาก ตัวอย่างด้านล่างสร้างฟังก์ชันชื่อ tbl_update เพื่ออัปเดตค่าในตาราง student_marks

ตัวอย่าง

mysql> Select * from student_marks//
+---------+------+---------+---------+---------+
| Name    | Math | English | Science | History |
+---------+------+---------+---------+---------+
| Raman   |   95 |      89 |      85 |      81 |
| Rahul   |   90 |      87 |      86 |      81 |
| Mohit   |   90 |      85 |      86 |      81 |
| Saurabh | NULL |    NULL |    NULL |    NULL |
+---------+------+---------+---------+---------+
4 rows in set (0.00 sec)

mysql> Create Function tbl_Update(S_name Varchar(50),M1 INT,M2 INT,M3 INT,M4 INT)
    -> RETURNS INT
    -> DETERMINISTIC
    -> BEGIN
    -> UPDATE student_marks SET Math = M1,English = M2, Science = M3, History =M4 WHERE Name = S_name;
    -> RETURN 1;
    -> END //
Query OK, 0 rows affected (0.03 sec)

mysql> Select tbl_update('Saurabh',85,69,75,82);
+------------------------------------+
| tbl_update('Saurabh',85,69,75,82)  |
+------------------------------------+
|                                  1 |
+------------------------------------+
1 row in set (0.07 sec)

mysql> Select * from Student_marks;
+---------+------+---------+---------+---------+
| Name    | Math | English | Science | History |
+---------+------+---------+---------+---------+
| Raman   |   95 |      89 |      85 |      81 |
| Rahul   |   90 |      87 |      86 |      81 |
| Mohit   |   90 |      85 |      86 |      81 |
| Saurabh |   85 |      69 |      75 |      82 |
+---------+------+---------+---------+---------+
4 rows in set (0.00 sec)

สรุป: ฟังก์ชันนี้รับชื่อนักเรียนและคะแนน 4 วิชา แล้วอัปเดตแถวที่ตรงกับชื่อ และคืนค่า 1 เพื่อบ่งชี้สำเร็จ