当前位置: 代码网 > it编程>数据库>Mysql > MySQL创建并调用自定义函数方式

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

2025年05月25日 Mysql 我要评论
创建方法拼接sqldelimiter $$drop function if exists genperson$$create function genperson(name varchar(20))

创建方法拼接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)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com