mysql currval 和 nextval 函数的实现

一、currval

DROP FUNCTION IF EXISTS `currval` ;
 

DELIMITER $$
 
CREATE DEFINER=`root`@`%` FUNCTION `currval`(v_seq_name VARCHAR(50)) RETURNS INT(11)
BEGIN
DECLARE VALUE INTEGER;
SET VALUE=0;
SELECT current_val INTO VALUE
FROM sequence 
WHERE seq_name=v_seq_name;
RETURN VALUE;
END;

$$
 
DELIMITER ;

二、nextval

DROP FUNCTION IF EXISTS `nextval`;

DELIMITER $$
CREATE DEFINER=`root`@`%` FUNCTION `nextval`(v_seq_name varchar(50)) RETURNS int(11)
BEGIN
UPDATE sequence
SET CURRENT_VAL= CURRENT_VAL + INCREMENT_VAL
where seq_name=v_seq_name;
return currval(v_seq_name);
END;

$$

DELIMITER

 

由于直接复制 可能会在执行中报格式错误 所以提供正确的格式版本 下载地址

由于csdn上传资源不能设置免积分。。。。所以需要的人 还是直接复制吧  别下载了 下载的这个 是给我自己备份用的
 

你可能感兴趣的:(mysql currval 和 nextval 函数的实现)