存储过程和函数:
创建示例代码:
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表插入触发器触发: