首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql中兑现类似oracle中的nextval函数

2013-01-26 
mysql中实现类似oracle中的nextval函数CREATE TABLE `sys_sequence` (`NAME` varchar(50) NOT NULL,`CURRE

mysql中实现类似oracle中的nextval函数
CREATE TABLE `sys_sequence` ( `NAME` varchar(50) NOT NULL, `CURRENT_VALUE` int(11) NOT NULL DEFAULT '0', `INCREMENT` int(11) NOT NULL DEFAULT '1', PRIMARY KEY (`NAME`) )

?

?

2.然后建立函数

DELIMITER $$DROP FUNCTION IF EXISTS `currval`$$CREATE DEFINER=`root`@`%` FUNCTION `currval`(seq_name VARCHAR(50)) RETURNS INT(11)BEGIN    DECLARE VALUE INTEGER;    SET VALUE=0;    SELECT current_value INTO VALUE    FROM sys_sequence     WHERE NAME=seq_name;    RETURN VALUE;    END$$ DELIMITER ;  CREATE DEFINER=`root`@`%` FUNCTION `nextval`(seq_name varchar(50)) RETURNS int(11) BEGIN     UPDATE sys_sequence     SET CURRENT_VALUE = CURRENT_VALUE + INCREMENT     where  name=seq_name;     return currval(seq_name);     END  CREATE DEFINER=`root`@`%` FUNCTION `setval`(seq_name varchar(50),value integer) RETURNS int(11) BEGIN     update sys_sequence      set current_value=value     where name=seq_name;     return currval(seq_name);     END

?

?

?

?测试下 select nextval('name') ; 搞定。

热点排行