代码之家  ›  专栏  ›  技术社区  ›  proximacentauri

Python PostgreSQL psycopg2将列连接到新列

  •  0
  • proximacentauri  · 技术社区  · 6 年前

    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 回复  |  直到 6 年前
        1
  •  1
  •   ScaisEdge    6 年前

    如果只需要一个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) 
    
        2
  •  1
  •   klin    6 年前

    如果要替换列 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;