Python PostgreSQL psycopg2将列连接到新列

时间:2018-10-13 13:14:09

标签: 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 NULL;')

但是如何才能将查询结果以高效的方式(大量行)插入表中?

2 个答案:

答案 0 :(得分:1)

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

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) 

答案 1 :(得分:1)

如果您要用新的col_1替换列col_2col_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;