2.6 KiB
2.6 KiB
sys_user_role 角色关系 SQL 生成记录
修改日期
2026-05-20
需求范围
- 根据
/Users/wkc/Downloads/892.xlsx的Sheet1生成sys_user_role插入语句。 - Excel 字段使用规则:
柜员号匹配sys_user.user_name后取sys_user.user_id,类型匹配sys_role.role_name后取sys_role.role_id。 - 未将 Excel 柜员号直接写入
sys_user_role.user_id。 - 本次只生成 SQL 文件,未执行写入数据库。
输出文件
sql/insert_sys_user_role_892_20260519.sql
数据统计
- Excel 有效数据行:257 行。
- 管理员:4 行。
- 支行管理员:37 行。
- 客户经理:213 行。
- Excel 中 3 个重复柜员号同时出现客户经理和支行管理员,本次按支行管理员优先处理,不插入客户经理角色。
重复柜员号
8922557: 裘朝山 / 892220 / 客户经理 / Excel 第 26 行、裘朝山 / 892220 / 支行管理员 / Excel 第 117 行8922667: 徐华源 / 892080 / 客户经理 / Excel 第 66 行、徐华源 / 892080 / 支行管理员 / Excel 第 121 行8923504: 陈俊杰 / 892170 / 客户经理 / Excel 第 28 行、陈俊杰 / 892170 / 支行管理员 / Excel 第 118 行- 处理规则:以上重复柜员号只保留在支行管理员插入语句中。
数据库映射确认
- 已查询开发库
sys_role,当前有效角色为:管理员->role_id=100,role_key=headAdmin客户经理->role_id=101,role_key=common支行管理员->role_id=102,role_key=branchAdmin
- SQL 文件不硬编码
role_id,执行时按sys_role.role_name动态匹配,避免不同环境角色自增 ID 不一致。 - SQL 使用
INSERT IGNORE,重复执行不会重复写入相同(user_id, role_id)。 - SQL 不创建临时表,已按
管理员、支行管理员、客户经理拆成三条独立插入语句,便于分角色执行和核对影响范围。
验证记录
- 已读取 Excel 并校验
类型只包含管理员、支行管理员、客户经理。 - 已确认
sys_user_role表结构为user_id、role_id联合主键。 - 已对开发库做不写入目标表的干跑校验:257 行角色均可匹配,当前库 Excel 柜员号匹配到的有效用户数为 0。
- 批量执行该 SQL 前需先导入 Excel 对应用户,否则三条插入语句因匹配不到
sys_user.user_name不会写入关系。 - 已按要求移除临时表建表、临时表插入和临时表删除语句。
- 已在事务内执行 SQL 脚本并
ROLLBACK,确认三条插入语句语法通过且未落库。