import csv import pymysql import time from datetime import datetime # ====== DB CONFIG ====== DB = { "host": "127.0.0.1", "port": 3306, "user": "root", "password": "root", "database": "recycle", "charset": "utf8mb4" } CSV_FILE = "t_chx_release_option.csv" def gen_id(): """简单生成唯一ID(你后期可换成雪花)""" return int(time.time() * 1000) def main(): conn = pymysql.connect(**DB) cur = conn.cursor() # ====== 内存映射(保证同名只生成一个ID)====== step_map = {} # step_name -> step_id option_key_map = {} # (step_name, option_key_name) -> option_key_id with open(CSV_FILE, encoding="gb18030") as f: reader = csv.DictReader(f) for row in reader: step_id = row["step_id"].strip() if step_id == "1": continue step_name = row["step_name"].strip() option_key_id = int(row["option_key_id"].strip()) option_key_name = row["option_key_name"].strip() option_id = int(row["option_id"].strip()) option_name = row["option_name"].strip() # ---- step ---- if step_name not in step_map: # step_id = gen_id() step_map[step_name] = step_id else: step_id = step_map[step_name] # ---- option_key ---- key = (step_name, option_key_name) if key not in option_key_map: # option_key_id = gen_id() option_key_map[key] = option_key_id else: option_key_id = option_key_map[key] # ---- option ---- # option_id = gen_id() cur.execute(""" INSERT INTO release_option ( step_id, step_name, option_key_id, option_key_name, option_id, option_name, create_time, update_time ) VALUES (%s,%s,%s,%s,%s,%s,%s,%s) """, ( step_id, step_name, option_key_id, option_key_name, option_id, option_name, datetime.now(), datetime.now() )) conn.commit() cur.close() conn.close() print("✅ release_option 规范化导入完成") if __name__ == "__main__": main()