什么是存储过程,我们如何创建 MySQL 存储过程?
mysqlmysqli database更新于 2024/3/14 9:36:00
在常规计算语言的上下文中,存储过程可以定义为存储在数据库中的子例程(如子程序)。在 MySQL 的上下文中,它是存储在数据库目录中的一段声明性 SQL 语句。在 MySQL 中编写存储过程之前,我们必须检查版本,因为 MySQL 5 引入了存储过程。以下是创建存储过程的语法 −
语法
CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body proc_parameter: [ IN | OUT | INOUT ] param_name type type: Any valid MySQL data type characteristic: COMMENT 'string' | LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } routine_body: Valid SQL routine statement
示例
以下是一个例子,我们创建了一个简单的过程来从表‘student_info’中获取包含以下数据的所有记录 −
mysql> select * from student_info; +-----+---------+------------+------------+ | id | Name | Address | Subject | +-----+---------+------------+------------+ | 100 | Aarav | Delhi | Computers | | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Jaipur | Literature | | 110 | Rahul | Chandigarh | History | +------+--------+------------+------------+ 4 rows in set (0.00 sec)
现在,借助以下查询,我们创建了名为 allrecords() 的存储过程
mysql> Delimiter // mysql> Create Procedure allrecords() -> BEGIN -> Select * from Student_info; -> END// Query OK, 0 rows affected (0.02 sec) mysql> DELIMITER ;