创建方法拼接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)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论