mysql-创建存储函数,存储过程,trigger

来源:互联网 发布:ubuntu python 路径 编辑:程序博客网 时间:2024/05/20 18:02

个人理解:

1 trigger是一个特殊的存储过程;

只不过是按照update,insert,delete的情况下,才执行的,

所以,trigger可以调用存储过程;而不可反之;

2,mysql的trigger中,不能既有on也对其操作,


第一个:创建存储函数

 mysql>delimiter //
 mysql>create function 函数名(参数1 参数1类型,...) returns 返回类型
      >begin
   >return 返回值;
   >end
   >//
mysql>select 函数名(参数1, 参数2, 。。。);

第二个:创建存储过程:

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;


0 0
原创粉丝点击