SQLite Forum

Updating unique columns [feature request]
Login
You can use UPSERT[1] to force the order in which UPDATES are
performed.

    CREATE TABLE t1(id INTEGER);
    INSERT INTO t1 VALUES (1), (2), (3);
    SELECT * FROM t1;
	-- 	id
	-- 	--
	-- 	1
	-- 	2
	-- 	3

    INSERT INTO t1( rowid, id)
    SELECT rowid, id + 1
    FROM t1
    WHERE 1      		-- Some kind of WHERE needed for UPSERT parsing
    ORDER BY id DESC	-- INSERT and therefore also UPDATE order
    ON CONFLICT(rowid) DO UPDATE SET id = excluded.id;

    SELECT * FROM t1;
	-- id
	-- --
	-- 2
	-- 3
	-- 4


[1] https://www.sqlite.org/lang_UPSERT.html