当前位置: 代码迷 >> MySQL >> MySQL存储过程跟函数
  详细解决方案

MySQL存储过程跟函数

热度:164   发布时间:2016-05-05 16:54:30.0
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、点击“保存”,填写名称

触发器:

创建代码:

DELIMITER $$CREATE TRIGGER triAFTER INSERT ON course FOR EACH ROWBEGIN    INSERT INTO t1(inf)         VALUES("course表插入了一条数据");END;$$DELIMITER ;

测试结果:

course表插入一条数据:

course表插入触发器触发:

  相关解决方案