Postgresql
是否可以根據另一個表的列填充表的主鍵?
我有一個包含文本類型列的表(例如圖形路徑:12 5 7 19 30 ..),我想按空格分割此文本並將所有輸出字元串作為主鍵放在另一個表中。
請注意,找到的字元串可以重複,所以每次我添加一個新的主鍵時,我都會檢查它是否已經存在。
聽起來像一個簡單的 INSERT … SELECT 語句:
insert into target_table (the_pk_column) select u.key from regexp_split_to_table('12 5 7 19 30', '\s+') as u(key) on conflict (the_pk_column) do nothing;
或基於源表的列
insert into target_table (the_pk_column) select u.key from source_table st cross join regexp_split_to_table(st.graph_path, '\s+') as u(key) where st.id = ... --<< whatever you want to select on conflict (the_pk_column) do nothing;