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