Jay*_*Jay 3 postgresql records clone copy crud
如何通过创建临时表来克隆或复制PostgreSQL中相同表中的记录.
尝试使用更改的名称(在该表中基本上是复合键)创建从一个表到同一个表的记录克隆.
kha*_*son 11
你可以将所有这一切INSERT结合起来SELECT.
即假设你有以下表格定义和填充的数据:
create table original
(
id serial,
name text,
location text
);
INSERT INTO original (name, location)
VALUES ('joe', 'London'),
('james', 'Munich');
Run Code Online (Sandbox Code Playgroud)
然后你就可以INSERT在不使用a的情况下进行你正在谈论的那种切换TEMP TABLE,如下所示:
INSERT INTO original (name, location)
SELECT 'john', location
FROM original
WHERE name = 'joe';
Run Code Online (Sandbox Code Playgroud)
这是一个sqlfiddle.
这也应该快了(尽管微小的数据集可能不会如此巨大的绝对时间方面),因为它做只有一个INSERT和SELECT而不是额外的SELECT和CREATE TABLE外加的UPDATE.
做了一些研究,得出了一个逻辑:
CREATE TEMP TABLE temporary AS SELECT * FROM ORIGINAL WHERE NAME='joe';
UPDATE TEMP SET NAME='john' WHERE NAME='joe';
INSERT INTO ORIGINAL SELECT * FROM temporary WHERE NAME='john';
Run Code Online (Sandbox Code Playgroud)
想知道是否有更短的方法来做到这一点。
| 归档时间: |
|
| 查看次数: |
6249 次 |
| 最近记录: |