• mysql 存储过程和触发器


    存储过程

    -- 声明结束符
    -- 创建存储过程
    DELIMITER $  -- 声明存储过程的结束符
    CREATE PROCEDURE pro_test()    --存储过程名称(参数列表)
    BEGIN
        -- 可以写多个sql语句;      -- sql语句+流程控制
        SELECT * FROM employee;
    END $  -- 结束 结束符
    
    -- 执行存储过程
    CALL pro_test();   -- CALL 存储过程名称(参数);
    
    -- 删除存储过程
    DROP PROCEDURE pro_test;
    
    参数:
    IN:   表示输入参数,可以携带数据带存储过程中
    OUT: 表示输出参数,可以从存储过程中返回结果
    INOUT: 表示输入输出参数,既可以输入功能,也可以输出功能

    案例:


    drop procedure if exists lopp;
    create procedure lopp()

    BEGIN
    FOR idx IN 1 .. 1000
    LOOP
    INSERT INTO my_tab VALUES ('A' || idx);
    END LOOP;
    COMMIT;
    dbms_stats.gather_table_stats(ownname => USER,
    tabname => 'MY_TAB',
    cascade => TRUE);
    END;

     

    触发器:

    需求: 当向员工表插入一条记录时,希望mysql自动同时往日志表插入数据

    CREATE TRIGGER tri_empAdd AFTER INSERT ON employee FOR EACH ROW    -- 当往员工表插入一条记录时
         INSERT INTO test_log(content) VALUES('员工表插入了一条记录');
  • 相关阅读:
    HTTP报文
    Linux命令行下快捷键
    ruby离线安装整理
    Tomcat启动时卡在 INFO HostConfig.deployDirectory Deploy
    ruby在线安装整理
    python_控制台输出带颜色的文字方法
    http proxy模块参数
    upstream模块调度算法
    upstream模块介绍
    nginx的upstream目前支持5种方式的分配
  • 原文地址:https://www.cnblogs.com/isuben/p/7872370.html
Copyright © 2020-2023  润新知