个人理解:
1 trigger是一个特殊的存储过程;
只不过是按照update,insert,delete的情况下,才执行的,
所以,trigger可以调用存储过程;而不可反之;
2,mysql的trigger中,不能既有on也对其操作,
第一个:创建存储函数
DELIMITER //
CREATE PROCEDURE nihao(IN yun INT)
BEGIN
SELECT yun;
SET yun=2;
SELECT yun;
END;
//
DELIMITER ;
执行存储过程
SET @YUN=1;
CALL NIHAO(@YUN);
注:
1.show procedure status; 显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
2.show create procedure sp_name 显示某一个存储过程的详细信息
3, drop procedure name;
第三个:创建触发器。
创建触发器语法如下:
CREATE TRIGGER trigger_name
trigger_time trigger_event ON tbl_name
FOR EACH ROW
trigger_stmt
其中trigger_name标识触发器名称,用户自行指定;
trigger_time标识触发时机,用before和after替换;
trigger_event标识触发事件,用insert,update和delete替换;
tbl_name标识建立触发器的表名,即在哪张表上建立触发器;
trigger_stmt是触发器程序体;触发器程序可以使用begin和end作为开始和结束,中间包含多条语句;
举例如下:
CREATE TRIGGER trigger_name
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
insert into tab2(tab2_id) values(new.tab1_id);
END;