首页 > 解决方案 > 插入从另一行复制值,但不是所有值

问题描述

我有一个project_data包含项目数据的表。它有一个project_id引用该表的列projects

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

例子:

ID 项目编号 随机字段 随机字段2
1 12 一个 B1
2 25 D E2

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

ID 项目编号 随机字段 随机字段2
1 12 一个 B1
2 25 D E2
3 30 一个 B1

怎么做?

编辑:我试过

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

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

标签: databasepostgresql

解决方案


尝试这个:

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;


推荐阅读