Postgresql 如何在postgres中克隆或复制同一表中的记录?
如何通过创建临时表在PostgreSQL中克隆或复制同一表中的记录Postgresql 如何在postgres中克隆或复制同一表中的记录?,postgresql,copy,clone,crud,records,Postgresql,Copy,Clone,Crud,Records,如何通过创建临时表在PostgreSQL中克隆或复制同一表中的记录 尝试将一个表中的记录克隆到名称已更改的同一个表中(这基本上是该表中的复合键)。进行了一些研究,得出了一个逻辑: 创建临时表 将记录复制到其中 更新临时表中的记录 将其复制回原始表 创建临时临时表,如从原始文件中选择*,其中NAME='joe' 更新临时集合NAME='john'其中NAME='joe' 插入原始文件,从NAME='john'处的临时文件中选择* 我想知道是否有较短的方法来完成它。您可以在一个INSERT和SELE
尝试将一个表中的记录克隆到名称已更改的同一个表中(这基本上是该表中的复合键)。进行了一些研究,得出了一个逻辑:
我想知道是否有较短的方法来完成它。您可以在一个
INSERT
和SELECT
组合中完成所有操作
i、 e.假设您有以下表格定义和数据填充:
create table original
(
id serial,
name text,
location text
);
INSERT INTO original (name, location)
VALUES ('joe', 'London'),
('james', 'Munich');
然后您可以INSERT
执行您正在谈论的开关类型,而无需使用TEMP TABLE
,如下所示:
INSERT INTO original (name, location)
SELECT 'john', location
FROM original
WHERE name = 'joe';
这是一个例子
这也应该更快(尽管对于微小的数据集,从绝对时间来看可能不会太快),因为它只执行一次INSERT
和SELECT
,而不是额外的SELECT
和CREATE TABLE
和UPDATE