1、存储过程(Stored Procs)
存储过程就是包含一系列sql语句的集合,完成一个复杂的功能。
存储过程可以被反复使用,使用效率非常高。
---------------------------------这是一个简单的存储过程例子------------------------------------------------
DELIMITER $$ --将原来的";"这个定界符替换为"$$"-------------------------------------------------
CREATE PROCEDURE show_address() --show_address存储过程名称
BEGIN --开始
UPDATE student SET address = '广州' WHERE NAME = '深圳';
SELECT *FROM student WHERE address = '深圳';
END $$ --结束
DELIMITER ; --存储过程定义之后恢复原来的定界符";"
------------------------------------------------------------------------------------
------------调用存储过程-----------
CALL show_address;
-------------------------------------------
2、触发器
触发器是一个特殊的存储过程,触发器的执行不是由程序的调用,也不是手动执行,而是由事件触发的。
触发器经常被用在加强数据的完整性约束和业务规则。
在MySQL中,触发器可以在执行INSERT、UPDATE或者DELETE时,执行一些特定的操作。
-------------------------------这是一个触发器简单例子----------------------------------------
--在student表里面插入一条记录的时候在student_totals表里将total字段的值加1
-----没有student_tatals表时先创建它,并给total字段赋一个初始值0
CREATE TABLE student_totals(total INT)
VALUES(0);
SELECT * FROM student_totals;
-------------------------------------------------------------------------------------------------------
INSERT INTO student(NAME,age,sex,address)
VALUES('小明',22,'男','广州')
------------------触发器------------------------------------------------------------------------
DELIMITER $$
CREATE TRIGGER student_insert_trigger
AFTER INSERT ON student FOR EACH ROW
BEGIN
UPDATE student_totals SET total = total+1;
END $$
DELIMITER ;
------------------------------------------------------------------------------------------------------