相关疑难解决方法(0)

有没有办法以“可维护”的方式克隆行(使用 PostgreSQL)?

我经常需要在应用程序中克隆行,所以我会花很长的时间来完成它:

INSERT INTO mytable (a, b, c)
SELECT a,b,c FROM mytable WHERE id=12;
Run Code Online (Sandbox Code Playgroud)

(id 被声明为 a SERIAL PRIMARY KEY, 12 是要克隆的行)。

问题是,当我添加新字段时,mytable我必须记住更新克隆函数以也克隆这些新字段。

我想以更易于维护的方式克隆行。就像是 :

INSERT INTO mytable
SELECT *, id:DEFAULT FROM mytable WHERE id=12;
Run Code Online (Sandbox Code Playgroud)

在我编写本文时,我还认为克隆详细信息行会很好:如果我有一个使用引用完整性声明的详细信息/子表,如下所示:

CREATE TABLE mychild (
  id serial PRIMARY KEY,
  parentid int REFERENCES mytable(id),
  a text
);
Run Code Online (Sandbox Code Playgroud)

我可以用一个命令克隆 mytable 和所有子表,而不是:

  1. 克隆 mytable(漫长的道路)
  2. 得到新的id
  3. 克隆全部mychild,设置parentid为新的id

PostgreSQL(或扩展)中是否有任何内容可以帮助处理这些情况?

postgresql insert

6
推荐指数
1
解决办法
7127
查看次数

标签 统计

insert ×1

postgresql ×1