Python PostgreSQL psycopg2将列连接到新列

Python PostgreSQL psycopg2将列连接到新列,python,postgresql,psycopg2,Python,Postgresql,Psycopg2,我可以使用以下代码连接两列: engine = create_engine(f'postgresql+psycopg2://user:password@host/db') result = engine.execute('SELECT concat(col_1, col_2) AS uid FROM db_table;') 我可以更改表以创建一个新列: engine.execute('ALTER TABLE db_table ADD COLUMN concat_1_2 VARCHAR NOT

我可以使用以下代码连接两列:

engine = create_engine(f'postgresql+psycopg2://user:password@host/db')
result = engine.execute('SELECT concat(col_1, col_2) AS uid FROM db_table;')
我可以更改表以创建一个新列:

engine.execute('ALTER TABLE db_table 
ADD COLUMN concat_1_2 VARCHAR NOT NULL;')

但是我如何才能高效地将结果查询插入到表中(非常多的行)?

如果您只需要一个insert,那么可以使用insert-select

insert into db_table (concat_1_2 )
SELECT concat(col_1, col_2) 
FROM db_table
否则,只需使用更新

UPDATE db_table
SET  concat_1_2 = concat(col_1, col_2) 

如果只需要插入,可以使用插入选择

insert into db_table (concat_1_2 )
SELECT concat(col_1, col_2) 
FROM db_table
否则,只需使用更新

UPDATE db_table
SET  concat_1_2 = concat(col_1, col_2) 

如果要将列
col_1
和列
col_2
替换为新的列
col_1_2
,可以通过以下方式更改表格:

alter table db_table alter col_1 type varchar using concat(col_1, col_2);
alter table db_table rename col_1 to col_1_2;
alter table db_table drop col_2;

如果要将列
col_1
和列
col_2
替换为新的列
col_1_2
,可以通过以下方式更改表格:

alter table db_table alter col_1 type varchar using concat(col_1, col_2);
alter table db_table rename col_1 to col_1_2;
alter table db_table drop col_2;

作为新行插入或更新现有行???作为新行插入或更新现有行???