mysql存储过程——CREATE PROCEDURE pro_name_proc()

mysql存储过程

存储过程:

存储过程相当于一个可以随时调用的方法,事先写好了就永久放在数据库了,可以随时使用,跟Java调用写好的方法类似;
它不需要像一般的select语句(每次都需要查看数据结构,每次都要建立相应的表联接,省事又省力。

存储过程参数说明:

language sql //可写可不写,默认;
language sql | [not] deterministic(确定性) | { contains sql | no sql | reads sql data | modifies sql data } | sql security { definer(默认值) | invoker } | comment ‘注释’。

语法示例:

	USE db_name
	DELIMITER $ $
	CREATE PROCEDURE pro_name_proc()    //括号不能省略,_proc为后缀名,==强烈建议加上去==;
	READS SQL DATA                      
	BEGIN 
		存储过程语句块;		    
	END
	$ $
	DELIMITER ;

语法示例:

	USE db_name
	DELIMITER $ $
	CREATE PROCEDURE pro_name_proc(IN col_name type,OUT col_name type);    	==//括号不能省略,当数据类型相同时,可以直接(INOUT 									//col_name type);==
	READS SQL DATA                     				  
	BEGIN 
		存储过程语句块;
	END
	$ $
	DELIMITER ;

调用存储过程:

	CALL pro_name_proc;
	CALL pro_name_proc(参数1,参数2,……);

查看存储过程的定义:

	SHOW PROCEDURE STATUS;

删除存储过程:

	drop procedure pro_name_proc;

触发器 :

(一种特殊的存储过程),是为了保证数据的完整性,事件触发(before 与 after)自动执行,用户无法执行;

触发器的创建:

	CREATE TRIGGER 触发器名称 触发事件(有三种:insert update delete) ON 表名 ON FOR EACH ROW
	BEGIN 
	触发程序
	END;

注意
触发器名:建议加上后缀或前缀“trigger”;
触发器的时间:BEFORE 或 AFTER;
FOR EACH ROW:表示行级触发器;

  • 结束语…………………………福利时间到………………………………

    大家同为程序员,在这里给大家真诚的送上福利。

    福利链接点击这里!

你可能感兴趣的:(mysql)