2 つの文字フィールドを持つテーブル region_town_names があります。1 つは地域名を含み、もう 1 つはコンマで区切られた町のリストです。
region | towns
-------------------------------
regionA | townA, townB, townC
regionB | townB, townD
また、各地域/町の数値 ID を持つ 2 つのテーブル (region_id と town_id) があります。
id | name id | name
--------------- ----------------
1 | regionA 1 | townA
2 | regionB 2 | townB
3 | townC
4 | townD
私は今、正規化されたテーブル region_town_ids を入力しようとしています。これは、町のリストをネスト解除し、次のような地域と町の ID を含む必要があります。
region_id | town_id
-------------------
1 | 1
1 | 2
1 | 3
2 | 2
2 | 4
私は簡単に名前を取得して挿入することができました
insert into region_town_ids
select region as region_id, unnest(string_to_array(towns,', ')) as town_id
from region_town_names;
しかし、どうすれば同じステートメントで名前のIDを検索し、名前の代わりに挿入できますか? それは可能ですか?psql 関数は必要ですか? ありがとう。