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') ; 搞定。