@ a_horse_with_no_name описывает оптимальный способ решения этой проблемы.Если полная реорганизация не устраивает вас, вы можете воспользоваться поддержкой PostgreSQL для транзакций как в DDL, так и в DML-операциях.
Таким образом, теоретически вы можете выполнить все пять своих шагов вединичная транзакционная операция.Благодаря MVCC вы сможете безопасно вносить эти изменения и оказывать минимальное функциональное влияние на пользователей вашей базы данных.Скорее всего, у вас возникнут огромные накладные расходы на диск (в зависимости от размера таблиц) и существенное раздувание базы данных (если транзакция занимает много времени, вакуумный процесс не запустится).
Все это, как говорится, вполне выполнимо.