【问题标题】:INSERT copying values from another row, but not all values插入从另一行复制值,但不是所有值
【发布时间】:2021-09-15 16:52:49
【问题描述】:

我有一个表 project_data ,其中包含来自项目的数据。它有一列 project_id 引用了表 projects

我想实现一个将项目复制到新项目中的功能。为此,我需要将 project_data 的所有条目与各自的 project_id 复制到新行中。但是,新行的字段project_id 应该与原始复制行不同,因为它们必须引用新的project_id

例子:

id project_id random_field random_field2
1 12 A B1
2 25 D E2

复制id=12的项目后,表格变成:

id project_id random_field random_field2
1 12 A B1
2 25 D E2
3 30 A B1

怎么做?

编辑:我试过了

INSERT INTO project_data (random_field, ramdom_field2)
              SELECT random_field, ramdom_field2 from project_data

但我不知道下一步该做什么。

【问题讨论】:

    标签: database postgresql


    【解决方案1】:

    试试这个:

    BEGIN;
    INSERT INTO project_data (project_id, random_field, random_field2)
                  SELECT 30, random_field, random_field2 from project_data
                  WHERE project_id = 12;
    

    如果那是你想要的COMMIT; 否则ROLLBACK;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多