PostgreSQL 复制行减去几列
PostgreSQL copy row minus a few columns
如何在不列出要复制的每一列的情况下复制一行(不包括几列)?我关心的是作为 include
与 exclude
相比,如果我添加一个新列或从 table 中删除一个列,我必须记住更新这个存储过程克隆以列出新列。
您必须明确列出列或使用 *
。 * except short_list
没有快捷方式。您可以尝试使用动态 sql 进行破解,从现有列中准备查询,例如 information_schema.columns
:
t=# select column_name,ordinal_position from information_schema.columns where table_name ='s160' order by ordinal_position;
column_name | ordinal_position
-------------+------------------
id | 1
a | 2
b | 3
c | 4
d | 5
(5 rows)
因此,保存以前的列列表并将其与当前列进行比较会给你新的列,你可以适应 execute format(...
中的更改,但老实说 - 它会导致更多问题,然后每次都指定明确的列列表。
如何在不列出要复制的每一列的情况下复制一行(不包括几列)?我关心的是作为 include
与 exclude
相比,如果我添加一个新列或从 table 中删除一个列,我必须记住更新这个存储过程克隆以列出新列。
您必须明确列出列或使用 *
。 * except short_list
没有快捷方式。您可以尝试使用动态 sql 进行破解,从现有列中准备查询,例如 information_schema.columns
:
t=# select column_name,ordinal_position from information_schema.columns where table_name ='s160' order by ordinal_position;
column_name | ordinal_position
-------------+------------------
id | 1
a | 2
b | 3
c | 4
d | 5
(5 rows)
因此,保存以前的列列表并将其与当前列进行比较会给你新的列,你可以适应 execute format(...
中的更改,但老实说 - 它会导致更多问题,然后每次都指定明确的列列表。