zoukankan      html  css  js  c++  java
  • mysql中创建函数

    一、查看创建函数的功能是否开启: 
    mysql> show variables like '%func%'; 
    +-----------------------------------------+-------+ 
    | Variable_name                            | Value | 
    +-----------------------------------------+-------+ 
    | log_bin_trust_function_creators | ON    | 
    +-----------------------------------------+-------+ 
    1 row in set (0.02 sec)

    二、如果Value处值为OFF,则需将其开启。 
    mysql> set global log_bin_trust_function_creators=1; 
    三、创建函数时,先选择数据库, 
    mysql> use xxx; 
    Database changed 
    delimiter $$是设置 $$为命令终止符号,代替分号,因为分号在begin...end中会用到; 
    mysql> delimiter $$ 
    CREATE FUNCTION first_func(param1 varchar(5),parmam2 varchar(5),param3 varchar(10)) 
    RETURNS TINYINT 
    BEGIN 
       RETURN 1; 
    END 
    函数创建成功后需恢复分号为命令终止符号。 
    mysql> delimiter ; 
    四、测试: 
    mysql> select first_func('aaa','bbb','ccc'); 
    +-------------------------------+ 
    | first_func('aaa','bbb','ccc') | 
    +-------------------------------+ 
    |                             1 | 
    +-------------------------------+ 
    1 row in set (0.47 sec) 
    五、删除函数: 
    mysql> drop function first_func ; 
    Query OK, 0 rows affected (0.11 sec) 
    六、查看函数 
    1) show function status 
    显示数据库中所有函数的基本信息  
    2)查看某个具体函数 

     mysql>show create function function;

    以上出自:http://blog.csdn.net/tfhui928/article/details/6058074

    举例:

    --查看创建函数功能是否开启
    SHOW VARIABLES LIKE '%func%';

    --开启创建函数功能,将variable_name设置为1
    SET GLOBAL log_bin_trust_function_creators=1;

    --查看数据库中所有函数
    SHOW FUNCTION STATUS;

    --查看具体的函数
    SHOW CREATE FUNCTION test_func

    --删除函数
    DROP FUNCTION test_func

    --创建查询函数
    DELIMITER $$
    CREATE FUNCTION test_func(param1 VARCHAR(20),param2 INT,param3 CHAR(5))
    RETURNS  INT
    BEGIN
        DECLARE ret_val INT;--定义变量
        SELECT MAX(id) INTO ret_val FROM test;
     RETURN ret_val;
     
    END

    --执行函数
    SELECT test_func('var',45,'char');

    --创建赋值函数
    DELIMITER $$
    CREATE FUNCTION test_func1(param1 INT,param2 VARCHAR(20))
    RETURNS INT
    BEGIN
        DECLARE return_val INT;
        DECLARE val INT DEFAULT 2;
        IF val>1 THEN
            SET return_val = val;
        ELSE
            SET return_val = 1;
        END IF;
     RETURN return_val;
    END

    --执行函数
    SELECT test_func1(1,'admin');

    转自:http://my.oschina.net/u/1273696/blog/181995

  • 相关阅读:
    Laravel学习之旅(一)
    telnet模拟邮件发送
    学习CodeIgniter框架之旅(二)继承自定义类
    学习CodeIgniter框架之旅(一)自定义模板目录
    MySQL主从复制实现
    coreseek增量索引
    锁(MySQL篇)—之MyISAM表锁

    php文件锁
    进程与线程
  • 原文地址:https://www.cnblogs.com/-lpf/p/4344517.html
Copyright © 2011-2022 走看看