Это немного сложно, но SQL может это сделать.
В ваших требованиях есть три приращения.
Допустим, ваша версия выглядит как Major.Minor.Patch
. Вам потребуется отдельная операция для каждого вида приращения. И вам нужен столбец таблицы для каждого.
Получение версии:
SELECT CONCAT_WS('.', Major, Minor, Patch) FROM tbl WHERE whatever;
Увеличение патча:
UPDATE tbl SET Patch = Patch + 1 WHERE whatever
Увеличение минорной версии и сброс патча.
UPDATE tbl SET Minor = Minor + 1, Patch = 0 WHERE whatever
Увеличение основной версии и сброс младшего и патча.
UPDATE tbl SET Major = Major + 1, Minor = 0, Patch = 0 WHERE whatever
Совет для профессионалов При проектировании SQL часто бывает необходимо полностью понять реальную проблему, которую вы решаете, - вам нужна точная модель данных вашей проблемы. Тогда SQL просто.