Не могу сказать наверняка, не зная, откуда берется переменная
y, но в самом update получается следующее.
Первым в списке полей, возвращаемом
table_info очевидно идет поле ID. Первой же операцией update это поле сбрасывается в 0, т.к получается конструкция
UPDATE userResource SET ID = 0 WHERE ID = твой_ID
Из-за этого последующие апдейты других полей не срабатывают, т.к. записи с ID = твой_ID уже нет, ты ее затёр нулем.
Можно добавить проверку по имени поля, чтобы такого не случалось, наподобие
if i[1] != 'ID':
cursor.execute('UPDATE ...
И выборку из pragma лучше все же сделать как и обычную, через fetchall
for i in cursor.execute(f"PRAGMA table_info(userResource)").fetchall():