""" 在所有 qgis 动态表中添加 tid 自增主键列 QGIS 的 datasource key='tid' 需要此列 """ import psycopg2 TABLES = [ 'hazard_hydrops', 'lifeline_outfall', 'lifeline_pipe', 'risk_census_population', 'sx_xa_towns', ] c = psycopg2.connect( host='47.92.216.173', port=7654, user='postgres', password='zhangsan', database='xian_new' ) c.autocommit = True cur = c.cursor() for t in TABLES: try: # 检查 tid 列是否存在 cur.execute(f""" SELECT EXISTS ( SELECT FROM information_schema.columns WHERE table_schema='qgis' AND table_name='{t}' AND column_name='tid' ) """) exists = cur.fetchone()[0] if exists: print(f"qgis.{t}: tid 列已存在, 跳过") else: cur.execute(f'ALTER TABLE qgis."{t}" ADD COLUMN tid SERIAL') print(f"qgis.{t}: tid 列添加成功") except Exception as e: print(f"qgis.{t}: 失败 - {e}") c.close()