real 0m0.946s
user 0m0.082s
sys 0m0.064s
real 0m1.111s
user 0m0.069s
sys 0m0.071s
| INSERT INTO sequence values('one', 100); | |
| INSERT INTO sequence values('two', 1000); | |
| SELECT sequence('one'); | |
| SELECT sequence('two'); | |
| SELECT sequence('one'); | |
| SELECT sequence('one'); | |
| SELECT sequence('two'); |
| CREATE TABLE sequence ( | |
| name VARCHAR(20) NOT NULL PRIMARY KEY, | |
| value INT unsigned NOT NULL | |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1; | |
| delimiter // | |
| CREATE FUNCTION sequence_update(seq_name VARCHAR(20)) | |
| RETURNS INT | |
| BEGIN | |
| UPDATE sequence SET value=LAST_INSERT_ID(value+1) WHERE name=seq_name; | |
| RETURN LAST_INSERT_ID(); | |
| END | |
| // | |
| delimiter ; | |
| delimiter // | |
| CREATE FUNCTION sequence_insert(seq_name VARCHAR(20)) | |
| RETURNS INT | |
| BEGIN | |
| INSERT INTO sequence (name, value) VALUES (seq_name, LAST_INSERT_ID(1)) | |
| ON DUPLICATE KEY UPDATE value=LAST_INSERT_ID(value+1); | |
| RETURN LAST_INSERT_ID(); | |
| END | |
| // | |
| delimiter ; |