3
我有兩個字符字段的表region_town_names轉換名歸的數字標識符的名稱和串,一個包括區的名字,其他的用逗號分隔的城鎮名單的Postgres 8.4.3:如何使用UNNEST
region | towns
-------------------------------
regionA | townA, townB, townC
regionB | townB, townD
我也有兩個表(REGION_ID和town_id)與每個區域/鎮的數字標識符
id | name id | name
--------------- ----------------
1 | regionA 1 | townA
2 | regionB 2 | townB
3 | townC
4 | townD
現在我試圖填補這應該UNNEST鎮名單的標準化表格region_town_ids和包含的ID像這樣的地區和城鎮:
region_id | town_id
-------------------
1 | 1
1 | 2
1 | 3
2 | 2
2 | 4
我能esaily得到的名稱和與
insert into region_town_ids
select region as region_id, unnest(string_to_array(towns,', ')) as town_id
from region_town_names;
插入他們,但我怎麼能查找名字的ID在同一語句並插入他們,而不是名字?那可能嗎?我需要一個psql函數嗎?謝謝。
非常感謝您!我知道這個例子中兩個地區的重複城鎮看起來很奇怪,但實際上我使用的是不同類型的數據,這種重複是很常見的,地區/城鎮只是作爲例子。不幸的是,數據庫的結構是固定的,所以我不能改變它。 – Guit 2013-02-22 07:48:02