DROP TABLE IF EXISTS sequence;
CREATE TABLE sequence (
idval INT UNSIGNED AUTO_INCREMENT,
PRIMARY KEY (idval)
) ENGINE=InnoDB;
DROP FUNCTION IF EXISTS nextval;
DELIMITER $
CREATE FUNCTION nextval ()
RETURNS INTEGER
CONTAINS SQL
BEGIN
declare id long;
insert into sequence () values();
select last_insert_id() into id;
return id;
END$
DELIMITER ;
使用效果:
mysql> SELECT nextval();
+-----------+
| nextval() |
+-----------+
| 89 |
+-----------+