我可以使用以下代码并置两列:
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;')
但是如何才能将查询结果以高效的方式(大量行)插入表中?
答案 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_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;