Skip to content

Instantly share code, notes, and snippets.

@roshangautam
Created May 10, 2015 17:50
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 roshangautam/d84cc2e497b102bfc4d4 to your computer and use it in GitHub Desktop.
Save roshangautam/d84cc2e497b102bfc4d4 to your computer and use it in GitHub Desktop.
UPDATE TEAM GUID
DROP FUNCTION IF EXISTS UPDATE_TEAM_GUID;
DELIMITER |
CREATE FUNCTION UPDATE_TEAM_GUID(old_slug TEXT)
RETURNS TEXT
BEGIN
DECLARE slug_maxlength INT DEFAULT 64;
DECLARE cut_length INT DEFAULT 4;
DECLARE new_slug TEXT;
DECLARE count_duplicate INT;
DECLARE slugcount INT;
DECLARE slug_part_maxlength INT;
DECLARE slug_part TEXT;
DECLARE count_duplicate_2 INT;
SELECT COUNT(*) INTO count_duplicate FROM teams WHERE guid=old_slug;
IF (count_duplicate > 1) THEN
SET slugcount = count_duplicate - 1;
SET slug_part_maxlength = slug_maxlength - cut_length;
SET slug_part = SUBSTRING(old_slug, 1, slug_part_maxlength);
SET new_slug = CONCAT(slug_part,'-', slugcount);
SELECT COUNT(*) INTO count_duplicate_2 FROM teams WHERE guid=new_slug LIMIT 1;
WHILE count_duplicate_2 > 0 DO
SET slugcount = slugcount + 1;
SET new_slug = CONCAT(slug_part,'-', slugcount);
SELECT COUNT(*) INTO count_duplicate_2 FROM teams WHERE guid=new_slug LIMIT 1;
END WHILE;
ELSE
SET new_slug = old_slug;
END IF;
RETURN new_slug;
END |
DELIMITER ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment