如何编写一个MySQL存储函数来更新表中的值?
正如我们所知,当我们想要返回结果时,函数最好用。因此,当我们为像插入或更新值这样的操作创建存储函数时,它将更多或更少类似于存储过程。在以下示例中,我们正在创建一个名为“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)
阅读更多:MySQL 教程
极客教程