Skip to content

Instantly share code, notes, and snippets.

@KiT106
Created June 17, 2016 11:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KiT106/ac9217c5dfad2bd60bfc80d294fe609b to your computer and use it in GitHub Desktop.
Save KiT106/ac9217c5dfad2bd60bfc80d294fe609b to your computer and use it in GitHub Desktop.
abc
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