文章 · 2021-10-12

批量行政区代码更新脚本实战笔记

脚本生成思路

import csv, datetime
tpl = "update site_store set area = {new} where store_code = '{code}' and store_type = '{typ}';"
with open('mapping.csv') as f, open('update.sql','w') as out:
    for row in csv.DictReader(f):
        out.write(tpl.format(**row)+'\n')

执行前校验

最佳执行姿势

SET SERVEROUTPUT ON
WHENEVER SQLERROR EXIT SQL.SQLCODE

校验与回滚

常见坑

优化与扩展

MERGE INTO site_store s USING tmp_area_map m
ON (s.store_code = m.store_code AND s.store_type = m.store_type)
WHEN MATCHED THEN UPDATE SET s.area = m.new_area;

总结

© 2026 Yuxu Ge ·