Как добавить столбец в существующую таблицу и обновить все существующие данные в postgresql? - PullRequest
0 голосов
/ 31 марта 2020

У меня есть существующая таблица, я хочу вставить новый столбец и обновить значения во всей таблице, чтобы мне не пришлось снова заполнять таблицу.

Но проблема в том, что у меня есть route столбец, который представлен в формате, показанном ниже. Я хочу добавить новый столбец route_name , где я не буду включать данные после 2-го подчеркивания '_'

Как мне это сделать, выполнив запрос?

This is how the table looks like.

route                                     route_name  (should look like)

dehradun_delhi_09:30_am                        dehradun_delhi        
katra_delhi_07:30_pm                           katra_delhi                                 
delhi_katra_08:00_pm                           delhi_katra  
bangalore_chennai_10:45_pm                     bangalore_chennai 
delhi_lucknow_09:00_pm                         delhi_lucknow  
chennai_bangalore_10:30_pm                     chennai_bangalore 
lucknow_varanasi_10:30_pm                      lucknow_varanasi
varanasi_lucknow_09:30_pm                      varanasi_lucknow  
delhi_katra_08:00_pm                           delhi_katra
katra_delhi_07:30_pm                           katra_delhi
delhi_jalandhar_10:00_pm                       delhi_jalandhar
jalandhar_delhi_11:00_am                       jalandhar_delhi
delhi_amritsar_11:00_pm                        delhi_amritsar   
amritsar_delhi_11:00_pm                        amritsar_delhi

Скажите, пожалуйста, какой запрос мне следует выполнить, чтобы также были обновлены данные, заполненные в обратном направлении, и обновился новый столбец с именем route_name в существующей таблице

1 Ответ

1 голос
/ 31 марта 2020

Вы должны сделать это в два этапа. Сначала вы добавляете столбец:
alter table route_table add column route_name text;
, а затем заполняете его:
update route_table set route_name=split_part(route,'_',1)

С уважением,
Bjarni

...