• MySQL存储过程和函数


    存储过程和函数:

    创建示例代码:

    DELIMITER $$
    
    CREATE PROCEDURE proc(IN c_id INT, IN c_name VARCHAR(20), OUT count INT)
    READS SQL DATA
    BEGIN
        SELECT *
        FROM course
        WHERE cou_no = c_id
        OR cou_name = c_name;
    
        SELECT FOUND_ROWS() INTO count;
    END $$
    
    DELIMITER

    另:

    1、存储过程或函数可以调用其他的过程或函数。

    2、{READS SQL DATA|MODIFIES SQL DATA|NO SQL|CONTAINS SQL}:这些特征值提供子程序使用数据的内在信息,这些特征值目前只是提供给服务器,并没有根据这些特征值来约束过程实际使用数据的情况。

    • READS SQL DATA:表示子程序包含读数据的语句,但不包含写数据的语句。
    • MODIFIES SQL DATA:表示子程序包含写数据的语句。
    • NO SQL:表示子程序不包含SQL语句。
    • CONTAINS SQL:表示子程序不包含读或者写数据的语句。

    如果这些特征没有明确给定,默认使用的值是CONTAINS SQL。  

    测试代码(分别执行):

    CALL proc(1,'信息系统',@a);
    
    SELECT @a;

    删除存储过程或者函数代码:

    DROP PROCEDURE proc;
    

    NAVICAT创建存储过程和函数过程:

    1、点击函数,新建函数

    2、选择“过程”

    3、开始编辑存储过程或函数

    4、点击“保存”,填写名称

    触发器:

    创建代码:

    DELIMITER $$
    CREATE TRIGGER tri
    AFTER 
    INSERT ON course FOR EACH ROW
    BEGIN
        INSERT INTO t1(inf) 
            VALUES("course表插入了一条数据");
    END;
    $$
    DELIMITER ;
    

    测试结果:

    course表插入一条数据:

    course表插入触发器触发:

  • 相关阅读:
    Microsoft Word 段前距设置和页眉设置
    JavaScript 跨域小总结
    JavaScript 闭包系列二(匿名函数及函数的闭包)

    JavaScript 变量作用域
    JavaScript 闭包系列一
    JavaScript 继承
    JavaScript 对象的创建
    MySQL(2): 窗口函数备份与恢复性能优化权限管理
    组建LAN
  • 原文地址:https://www.cnblogs.com/ForeverLover/p/4646445.html
Copyright © 2020-2023  润新知