create
or replace function set_timezones() returns trigger language plpgsql as $$ begin
update
cities
set
time_zone = a.name,
time_zone_abbrev = a.abbrev
from
pg_timezone_names a
where
a.name like '%' || replace(city, ' ', ' _ ') || '%';
return new;
end;
$$
create
or replace function set_timezones() returns trigger language plpgsql as $$ begin
update
cities
set
time_zone = data.name,
time_zone_abbrev = data.abbrev
from
(
select
name,
abbrev
from
pg_timezone_names
where
name like '%' || replace(city, ' ', '_') || '%'
) as data;
return new;
end;
$$