MySQL创建并调用自定义函数方式

 更新时间:2025年05月24日 09:38:08   作者:壹业  
这篇文章主要介绍了MySQL创建并调用自定义函数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

创建方法拼接SQL

DELIMITER $$
DROP FUNCTION IF EXISTS genPerson$$
CREATE FUNCTION genPerson(name varchar(20)) RETURNS varchar(50)
BEGIN
  DECLARE str VARCHAR(50) DEFAULT '';
  SET @tableName=name;
  SET str=CONCAT('create table ', @tableName,'(id int, name varchar(20));');
  return str;
END $$
DELIMITER ;
  • (1)DELIMITER $$ 定义结束符。MySQL默认的结束符是分号,但是函数体中可能用到分号。为了避免冲突,需要另外定义结束符。
  • (2)DROP FUNCTION IF EXISTS genPerson$$ 如果函数genPerson已经存在了,就删除掉。
  • (3)CREATE FUNCTION 创建函数genPerson,函数的参数是name,返回值是varchar(50)。
  • (4)函数体放在BEGIN 与 END之间。
  • (5)DECLARE 声明变量,str类型是varchar(50),默认值是空。
  • (6)CONCAT连接多个字符串。
  • (7)RETURN 返回拼接后的字符串str。

创建方法直接写SQL

DELIMITER $$
DROP FUNCTION IF EXISTS getNthHighestSalary$$
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
	SET N = N -1;
  RETURN (
      # Write your MySQL query statement below.
      select ifnull((select distinct id from user order by id desc limit 1 OFFSET n),null)
  );
END

调用方法

select genPerson('student');
select getNthHighestSalary(2)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL下常见的启动失败与备份失败问题的解决教程

    MySQL下常见的启动失败与备份失败问题的解决教程

    这篇文章主要介绍了MySQL下常见的启动失败与备份失败问题的解决教程,示例环境基于Linux系统,需要的朋友可以参考下
    2015-11-11
  • 利用rpm安装mysql 5.6版本详解

    利用rpm安装mysql 5.6版本详解

    众所周知MySQL在很多领域都被广泛的使用,尤其是很多互联网企业,诸如腾讯,阿里等等。那么本文将主要介绍如何通过rpm方式来安装Mysql,这是比较简单的一种安装方式,文中介绍的很详细,相信对于大家安装mysql具有一定的参考借鉴价值,下面来一起看看吧。
    2016-11-11
  • 开启bin-log日志mysql报错的解决方法

    开启bin-log日志mysql报错的解决方法

    开启bin-log日志mysql报错:This function has none of DETERMINISTIC, NO SQL解决办法,大家参考使用吧
    2013-12-12
  • MySQL使用Partition功能实现水平分区的策略

    MySQL使用Partition功能实现水平分区的策略

    这篇文章主要介绍了MySQL使用Partition功能实现水平分区,给大家提到了水平分区的5种策略,通过sql语句给大家介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • MySQL实现简单的创建库和创建表操作方法

    MySQL实现简单的创建库和创建表操作方法

    MySQL是最常用的数据库,在数据库操作中基本都是增删改查操作,简称CRUD,这篇文章主要给大家介绍了关于MySQL实现简单的创建库和创建表操作方法的相关资料,需要的朋友可以参考下
    2023-11-11
  • 查找MySQL线程中死锁的ID的方法

    查找MySQL线程中死锁的ID的方法

    这篇文章主要介绍了查找MySQL线程中死锁的ID的方法,文中介绍的方法主要是从数据字典里查找,需要的朋友可以参考下
    2015-05-05
  • MySQL中的数据库约束用法及说明

    MySQL中的数据库约束用法及说明

    本文介绍了MySQL数据库中的约束类型,包括notnull、unique、default、primary key、foreign key和check,这些约束类型用于实现对插入数据的管控,确保数据的完整性和逻辑性
    2026-03-03
  • Mysql中SUM()函数使用方法

    Mysql中SUM()函数使用方法

    这篇文章主要给大家介绍了关于Mysql中SUM()函数使用的相关资料,MySQL 的 SUM 函数可以用来对某个列进行求和,但是如果你想要按照某个条件进行求和,可以使用带有WHERE子句的SUM函数,需要的朋友可以参考下
    2023-08-08
  • MySQL 5.0.96 for Windows x86 32位绿色精简版安装教程

    MySQL 5.0.96 for Windows x86 32位绿色精简版安装教程

    这篇文章主要介绍了MySQL 5.0.96 for Windows x86 32位绿色精简版安装教程,需要的朋友可以参考下
    2017-10-10
  • mysql迁移达梦列长度超出定义的简单解决方法

    mysql迁移达梦列长度超出定义的简单解决方法

    这篇文章主要介绍了mysql迁移达梦列长度超出定义解决方法的相关资料,,在达梦数据库中,字符串长度的存储方式与MySQL不同,导致迁移过程中出现数据长度不足的错误,解决方法包括在MySQL中将varchar类型修改为varchar(10char)以强制字符存储,需要的朋友可以参考下
    2024-12-12

最新评论