mysql中实现类似oracle中的nextval函数
2018-04-01 17:21
316 查看
1、建表
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
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
相关文章推荐
- mysql中实现类似oracle中的nextval函数
- mysql中实现类似oracle中的nextval函数
- Oracle如何实现类似MySQL的show create table,show index的功能
- MySql中实现类似Oracle的Sequence方案
- mysql中实现类似oracle的SYS_CONNECT_BY_PATH功能
- MySQL实现类似Oracle中start with功能
- MySQL中实现插入或更新操作(类似Oracle的merge语句)
- Oracle中的ROWNUM rowid 以及MySQL中实现rownum功能类似的语句
- mysql实现类似oracle的connect by功能
- 对字符串的“sum”——Oracle里实现类似MySQL group_concat函数
- MySQL实现类似Oracle中的decode()函数的功能见解 乐杨俊
- MYSQL 存储过程实现类似ORACLE row_number 和 rank 的简单例子
- MySql实现类似Oracle中Row_number功能
- MySQL实现类似Oracle的row_number效果
- MySQL实现类似Oracle中start with功能
- MySQL的前缀索引及Oracle的类似实现
- MySQL实现类似Oracle的序列
- Oracle中的ROWNUM rowid 以及MySQL中实现rownum功能类似的语句
- oracle实现类似mysql的LIMIT,也可以作为oracle分页使用
- mysql类似oracle的row_number实现