56,914
社区成员




set global log_bin_trust_function_creators=TRUE;-- 非必须,跟你mysql的设置有关,如果没有这句话,可能会创建function失败
DELIMITER $$
Create function getid()
returns int
begin
declare maxid int;
declare generateId int;
declare result int;
select max(id) into maxid from a; -- 取出a表中最大的id值
select year(now()) * 10000 into generateId; -- 根据年份生成一个0开始的id值, 类似:20200000
if generateId > maxid then -- 如果生成的年份的id值大于a表中的id值, 类似:20190010, 20200101
set result = generateId + 1; -- 那么新的id值就是当前年份的id值加1,即返回 20200001
else
set result = maxid + 1; -- 否则在max(id)的值加1
end if;
return result;
end $$