Created
June 17, 2016 11:17
-
-
Save KiT106/ac9217c5dfad2bd60bfc80d294fe609b to your computer and use it in GitHub Desktop.
abc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ALTER TABLE revinfo | |
AUTO_INCREMENT = 3; | |
INSERT INTO revinfo | |
(REV, REVTSTMP) | |
VALUES (2, 146613965300); | |
UPDATE revinfo | |
SET REV = REV + 1 | |
WHERE REVTSTMP > 1466139651507 | |
ORDER BY REV DESC; | |
DROP PROCEDURE IF EXISTS insert_revision; | |
CREATE PROCEDURE insert_revision( | |
IN ts BIGINT(20), | |
OUT id BIGINT(20) | |
) | |
BEGIN | |
SELECT @id := REV FROM revinfo WHERE REVTSTMP = ts; | |
IF id IS NULL | |
THEN | |
SELECT @id := max(REV) + 1 FROM revinfo WHERE REVTSTMP < ts; | |
IF id IS NULL THEN SET id = 1; END IF ; | |
UPDATE revinfo SET REV = REV + 1 WHERE REVTSTMP > ts ORDER BY REV DESC; | |
INSERT INTO revinfo (REV, REVTSTMP) VALUES (id, ts); | |
SELECT @nexVal := MAX(REV)+ 1 FROM revinfo; | |
PREPARE stmt FROM 'ALTER TABLE revinfo AUTO_INCREMENT = ?'; | |
EXECUTE stmt USING @nexVal; | |
DEALLOCATE PREPARE stmt; | |
END IF; | |
END; | |
CALL insert_revision(1466159712323, @id); | |
SELECT @id := REV FROM revinfo WHERE REVTSTMP = 1466159712326873; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment