你的位置:首页 > 数据库

[数据库]MySQL存储过程和函数


存储过程和函数:

创建示例代码:

DELIMITER $$CREATE PROCEDURE proc(IN c_id INT, IN c_name VARCHAR(20), OUT count INT)READS SQL DATABEGIN  SELECT *  FROM course  WHERE cou_no = c_id  OR cou_name = c_name;  SELECT FOUND_ROWS() INTO count;END $$DELIMITER

另:

1、存储过程或函数可以调用其他的过程或函数。

2、{READS SQL DATA|MODIFIES SQL DATA|NO SQL|CONTAINS SQL}:这些特征值提供子程序使用数据的内在信息,这些特征值目前只是提供给服务器,并没有根据这些特征值来约束过程实际使用数据的情况。

  • READS SQL DATA:表示子程序包含读数据的语句,但不包含写数据的语句。
  • MODIFIES SQL DATA:表示子程序包含写数据的语句。
  • NO SQL:表示子程序不包含SQL语句。
  • CONTAINS SQL:表示子程序不包含读或者写数据的语句。

如果这些特征没有明确给定,默认使用的值是CONTAINS SQL。  

测试代码(分别执行):

CALL proc(1,'信息系统',@a);SELECT @a;

删除存储过程或者函数代码:

DROP PROCEDURE proc;

NAVICAT创建存储过程和函数过程:

1、点击函数,新建函数

2、选择“过程”

3、开始编辑存储过程或函数

4、点击“保存”,填写名称