x
GRANT UPDATE
ON (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'parcel%')
TO police;
Advertisement
Answer
GRANT
takes only fixed table names (or list of tables). What you want require dynamic SQL, ie dynamically building a statement and executing it in an anonymous block.
Consider:
do
$$
begin
execute (
select
'grant all on table '
|| string_agg (format('%I.%I', table_schema, table_name), ', ')
|| ' to police'
from information_schema.tables
where table_name like 'parcel%'
) ;
end
$$;