SQLite3 — сгенерированный столбец
Есть у меня правило для сгенерированного столбца, вот оно:
number TEXT NOT NULL UNIQUE GENERATED ALWAYS AS (substr('0000' || id, length('id'), 4)) STORED
Но, когда номер доходит до десятки (0010), происходит ошибка. Если уменьшить число нолей на один, то та же ошибка случится, если число строк дойдёт до сотни (0100). Как сформулировать условие, чтобы не вызывало ограничений этого верхнего порога, ведь, число строк может превысить тысячу и более?
Ответы (1 шт):
Автор решения: Alpensin
→ Ссылка
Можно сделать вот так
number TEXT NOT NULL UNIQUE GENERATED ALWAYS AS (printf('%04d', id)) STORED
Если же делать через substr, то можно так
number TEXT NOT NULL UNIQUE GENERATED ALWAYS AS (substr('0000' || id, -max(4, length(id)), max(4, length(id)))) STORED