zoukankan      html  css  js  c++  java
  • mysql

    和存储过程的区别:

    存储过程:返回值任意                             主要用于批量增删改

    函数:有且只有一个返回值                      主要用来查某个值

    1.创建:

    方法类型

    1 DETERMINISTIC 不确定的
    2 NO SQL 没有SQl语句,当然也不会修改数据
    3 READS SQL DATA 只是读取数据,当然也不会修改数据

    不添加可能会报1418错误

    function中的变量可以用局部变量或者用户变量定义

    例子1:无参数,用局部变量

    DELIMITER $$
    CREATE FUNCTION fun_test_no_param() RETURNS VARCHAR(20)  #起名字时最好能与表内属性分开避免歧义
    DETERMINISTIC    #创建方法时需要确认方法类型,否则会出现1418错误
    BEGIN
        DECLARE f_id INT DEFAULT 1;
        DECLARE f_username VARCHAR(20);
        SELECT username INTO f_username FROM userinfo WHERE uid = f_id;
        RETURN f_username;
    END $$
    DELIMITER ;

    #使用
    SELECT
    fun_test_no_param();

    例子2:有参数,用用户变量

    DELIMITER $$
    CREATE FUNCTION fun_test_param(f_uid INT) RETURNS VARCHAR(20)  #起参数名字时最好能与表内属性分开避免歧义
    DETERMINISTIC    
    BEGIN
        SET @f_username = 'aaa';  #这句不要也可以,用户变量可以直接在sql语句中直接创建赋值。
        SELECT username INTO @f_username FROM userinfo WHERE uid = f_uid;
        RETURN @f_username;
    END $$
    DELIMITER ;
    

    #使用 SELECT fun_test_param(1);

    2. 查看:

    show create function 方法名

    3. 删除:

    drop function 方法名字;

  • 相关阅读:
    caffe简单介绍
    良好地去规划自己的学习
    计算机视觉开篇---读史可以明智
    Oracle的闪回操作
    数据库的管理
    oracle dblink结合同义词的用法 PLS-00352:无法访问另一数据库
    一次导如数据库时主表数据丢失的解决过程
    Oracle函数的使用
    MinGW和MSYS的自动安装 【转】
    Oracle表的管理
  • 原文地址:https://www.cnblogs.com/clamp7724/p/11798283.html
Copyright © 2011-2022 走看看