zoukankan      html  css  js  c++  java
  • 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表插入触发器触发:

  • 相关阅读:
    Nhibernate初学
    TSQL笔记
    Java是剑客飘逸;.NET是刀客霸道 (一) 【转载】
    在datagrid中求和(vb.net,c#)
    Java牢骚之我见(转载)
    Java是剑客飘逸;.NET是刀客霸道 (二) 【转载】
    可可西里观后感(转)保护藏羚羊
    .net快速入门方法,转csdn
    手工添加“显示桌面”快捷方式
    过年128>24
  • 原文地址:https://www.cnblogs.com/ForeverLover/p/4646445.html
Copyright © 2011-2022 走看看