zoukankan      html  css  js  c++  java
  • MySql的存储过程和触发器

    Mysql的存储过程是类似于其它编程语言中的函数的功能,存储过程内部可以使用顺序循环和转移三种基本程序结构,而且整个存储过程可以接受和返回参数。

    创建存储过程(procedure)时,因为其内部有以;结尾的sql语句,所以我们要更改语句结束符,使用delimiter  //来更改结束符为//。然后就可以定义了,eg

    create procedure name()

    begin

    declare a int(10);

    set a = 1;

    while a<10 do

    if a%2 = 1 then

    set a = a+1;

    insert into users values (null,a,’’,’’);

    else

    set a=a+1;

    end if;

    end while;

    end //

    调用时直接使用call name()来就可以,注意要带()。

    显示创建过程用show create procedure name

    显示所有存储过程用show procedure status

    删除存储过程用 drop procedure name

    存储过程内可以使用字符串,时间和数学函数。同时可以在参数列表中定义传入和传出的参数,定义输出参数 out a int,在存储过程内部给这个变量@a赋值,显示时用select @a。

    Mysql的触发器相当于内部处理的一些过程,他不带入和带出任何的参数,其内部使用的参数就是新旧两条记录old和new的字段。用于完成数据表之间的触发操作,来保证数据库的一致性、完整性。

    定义触发器的规程:

    create trigger name after|before delete|update|insert on table_name for each row begin end 当有多个语句的时候就用begin和end,不可以有多个相同时间点的相同类型操作。Eg

    Create trigger name before update on users

    For each row

    Begin

    If new.admin = 1 then

    Set new.admin =1;

    Else

    Set new.admin =0;

    End if;

    End

    调用触发器,当在表上出现制定的操作时,执行相应的触发器。

    删除触发器drop trigger name

    用途举例:同步插入数据至不同类型的表,同步删除关联数据。

     

  • 相关阅读:
    TCP 监控工具 TCPMonitor
    程序员职业规划
    <转>eclipse如何修改dynamic web module version .
    JBoss部属和EJB调用-EJB3.0入门经典学习笔记(2)
    环境配置与JBoss安装-EJB3.0入门经典学习笔记(1)
    【EDA】PCBA丝印尺寸
    【Altium Designer】PCB如何用规则检查
    【Cadence】Gerber之二:钻孔文件设置与生成
    【生产】如何设计生产线
    【EMC】脉冲群Burst
  • 原文地址:https://www.cnblogs.com/likeju/p/4911570.html
Copyright © 2011-2022 走看看