在 table A 中为 table B 中的每个不同值创建行

Create row in table A for each distinct value in table B

我有 table 个具有 ID 和 proposalID 的 A。 Table B 也有一个 proposalID。我想要做的是对于 table B 中的每个不同的提案 ID,我想在 table A 中创建一个具有相同提案 ID 和新 ID 的新行。

所以 table A 有这些不同的提案 ID:

94CAEF39-855B-4B5C-9534-9D4AD0A75FC8
C1D87317-7028-4F69-91D4-FFFBB35E7ACD
807D7733-5CCF-486F-81E5-FFF153307C22
521E22E2-511E-46F2-AA46-FFF832367A9E

我想让tableB现在拥有的是:

ID: new uniqueidentifier, proposalID: 94CAEF39-855B-4B5C-9534-9D4AD0A75FC8
ID: new uniqueidentifier, proposalID: C1D87317-7028-4F69-91D4-FFFBB35E7ACD
ID: new uniqueidentifier, proposalID: 807D7733-5CCF-486F-81E5-FFF153307C22
ID: new uniqueidentifier, proposalID: 521E22E2-511E-46F2-AA46-FFF832367A9E

我仍在学习 sql,不知道如何处理。我知道如何获取所有不同的提案 ID,但之后我就不知道了。

这个怎么样?

insert into A(id, proposal)
    select uuid(), proposal
    from (select distinct proposal
          from b
         ) b;

但是,table A 使用自动递增的 id 不是更简单吗?然后 id 会在您插入新值时自行设置。