Запрос на изменение типа должен быть примерно такой (и обратите внимание на точку с запятой в конце запроса):
alter table %I alter column row_num type int4 using row_num::int, alter column row_num set not null;
(если где-то будут NULL'ы или row_num не влезет/не сконвертируется в int, будут проблемы).
В скрипте
DO $ $ BEGIN EXECUTE (
- лишнее, это же просто SELECT.
Либо, если вы не хотите копировать вывод запроса и отдельно выполнять, можно таким скриптом:
DO $$DECLARE q TEXT;
BEGIN
FOR q IN SELECT format(
'alter table %I alter column row_num type int4 using row_num::int, alter column row_num set not null',
tablename
)
FROM pg_tables WHERE schemaname = 'public'
LOOP
EXECUTE q;
END LOOP;
END$$;