what i've done in the past is append a character to the value and make use of "cast":
update desktops set indexNo = indexNo || '_'; update desktops set indexNo = cast(indexNo as integer) + 1; then: insert into desktops values (new row with index = 1); from the docs, which i hope i'm not misreading: http://sqlite.org/lang_expr.html#castexpr "When casting a TEXT value to INTEGER, the longest possible prefix of the value that can be interpreted as an integer number is extracted from the TEXT value and the remainder ignored." has worked for me for years but ymmv On Mon, Jan 23, 2017 at 11:58 AM, Cecil Westerhof <cldwester...@gmail.com> wrote: > 2017-01-23 16:53 GMT+01:00 Clemens Ladisch <clem...@ladisch.de>: > > > Cecil Westerhof wrote: > > >> UPDATE desktops > > >> SET indexNo = indexNo + 1 > > >> > > >> But it does not, it gives: > > >> Error: UNIQUE constraint failed: desktops.indexNo > > > > > > It is actually quite simple: > > > PRAGMA ignore_check_constraints = ON > > > > A UNIQUE constraint is not a CHECK constraint. > > > > But it works. > > -- > Cecil Westerhof > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users