I needed to act on individual members of a set. I also didn’t want to write a function. In psql, I discovered the DO block. It allowed me to gain access to pgplsql without being in the context of a UDF (User Defined Function).
In this particular case, I created a table called view_refugees. These were views that were causing my rails migration to fail due to a change in an underlying table column’s datatype. The plan is that I will create the view refugees from pg_views, drop the views, run the migration, then recreate the views.
do $$declare r record; begin for r in select viewname, schemaname from view_refugees loop execute 'drop view ' || r.schemaname || '.' || r.viewname || ' cascade'; end loop; end$$;
DO block makes that easier.