Postgresql

是否可以根據另一個表的列填充表的主鍵?

  • July 21, 2020

我有一個包含文本類型列的表(例如圖形路徑: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;

引用自:https://dba.stackexchange.com/questions/271333