Files
hzdyjs/docs/数据库脚本/2026-09-01-xg_class_msg-set-campus-by-name.sql
2026-09-02 09:58:57 +08:00

229 lines
7.0 KiB
SQL

-- ============================================================
-- 班级信息:按班级名称批量设置所在校区
-- 日期:2026-09-01
-- 依赖:先执行 2026-09-01-xg_class_msg-add-campus.sql
-- 说明:
-- 1. 按 class_name 精确匹配(含「无人机 261」等带空格名称)
-- 2. 校区 ID 从 xg_dorm_campus 按名称解析,不写死雪花 ID
-- 3. 执行前可用下方「预览」语句核对命中条数与未命中班级
-- ============================================================
-- ---------- 预览:西溪校区将命中多少条 ----------
-- SELECT id, class_name, campus_id, campus_name
-- FROM xg_class_msg
-- WHERE deleted = 0
-- AND class_name IN (
-- '美术设计241','美术设计242','美术设计251','电气261','电气263','电气264',
-- '机器人261','无人机 261','数字制造261','智能制造261','汽修261','机电261','机电263',
-- '中药261','中药263','药剂261','生物制药261','健康管理261','园林技术261','园林技术263',
-- '环境设计261','农业技术261','西餐运营261','西餐运营263','西餐运营264','中烹261','中烹263',
-- '中西点261','中西点263','数字媒体261','数字媒体263','人工智能261','电商261','电商263','电商264','美术设计261',
-- '电气211','无人机221','无人机222','电气241','无人机241','电气221','电气231','无人机231',
-- '大数据231','大数据241','机器人241','电气251','机器人251','无人机 251','大数据251',
-- '药剂211','药剂222','药剂223','医药物流221','药剂242','药剂243','药品营销241',
-- '药剂221','药剂231','药剂232','医药物流231','药剂241','药剂251','药剂252','药剂253','药品营销251','健康管理251',
-- '西餐运营211','烹饪221','西餐运营222','西餐运营241','中烹241','中西点241',
-- '西餐运营221','西餐运营231','西餐运营232','中烹231','中西点231','中西点232',
-- '西餐运营242','中烹242','西餐运营251','西餐运营252','中烹251','中烹252','中西点251','中西点252',
-- '电子商务242','数字媒体241','电商231','电商232','电子商务241','人工智能241',
-- '数字媒体251','人工智能251','网络安全251','电商251','电商252'
-- );
-- ---------- 预览:临安校区将命中多少条 ----------
-- SELECT id, class_name, campus_id, campus_name
-- FROM xg_class_msg
-- WHERE deleted = 0
-- AND class_name IN (
-- '数字制造211','汽修221','数控221','数控241','数字制造221','数控231','数字制造231',
-- '汽修231','汽修232','数字制造241','汽修241','数字制造251','智能制造251','汽修251','产品检测251',
-- '中药211','中药221','中药231','中药232','中药241','中药251','中药252',
-- '园林211','园林工程221','园林设计221','园林技术241','园林设计241','园林技术221',
-- '园林工程231','园林设计231','园林技术231','园林工程241','园林技术251','园林技术252',
-- '园林工程251','环境设计251'
-- );
-- ---------- 预览:名单中库里不存在的班级名(两边合并后左连接检查)----------
-- 可将下方更新用的名单拆出核对;有结果说明名称不一致(空格/别名等)
START TRANSACTION;
-- 1) 西溪校区
UPDATE xg_class_msg c
INNER JOIN xg_dorm_campus camp
ON camp.campus_name = '西溪校区'
AND camp.deleted = '0'
SET
c.campus_id = camp.id,
c.campus_name = camp.campus_name,
c.update_time = NOW()
WHERE c.deleted = 0
AND c.class_name IN (
-- 261 / 美术设计等
'美术设计241',
'美术设计242',
'美术设计251',
'电气261',
'电气263',
'电气264',
'机器人261',
'无人机 261',
'数字制造261',
'智能制造261',
'汽修261',
'机电261',
'机电263',
'中药261',
'中药263',
'药剂261',
'生物制药261',
'健康管理261',
'园林技术261',
'园林技术263',
'环境设计261',
'农业技术261',
'西餐运营261',
'西餐运营263',
'西餐运营264',
'中烹261',
'中烹263',
'中西点261',
'中西点263',
'数字媒体261',
'数字媒体263',
'人工智能261',
'电商261',
'电商263',
'电商264',
'美术设计261',
-- 电气 / 无人机 / 大数据 / 机器人
'电气211',
'无人机221',
'无人机222',
'电气241',
'无人机241',
'电气221',
'电气231',
'无人机231',
'大数据231',
'大数据241',
'机器人241',
'电气251',
'机器人251',
'无人机 251',
'大数据251',
-- 药剂 / 医药物流 / 健康管理
'药剂211',
'药剂222',
'药剂223',
'医药物流221',
'药剂242',
'药剂243',
'药品营销241',
'药剂221',
'药剂231',
'药剂232',
'医药物流231',
'药剂241',
'药剂251',
'药剂252',
'药剂253',
'药品营销251',
'健康管理251',
-- 西餐 / 中烹 / 中西点
'西餐运营211',
'烹饪221',
'西餐运营222',
'西餐运营241',
'中烹241',
'中西点241',
'西餐运营221',
'西餐运营231',
'西餐运营232',
'中烹231',
'中西点231',
'中西点232',
'西餐运营242',
'中烹242',
'西餐运营251',
'西餐运营252',
'中烹251',
'中烹252',
'中西点251',
'中西点252',
-- 电商 / 数字媒体 / 人工智能
'电子商务242',
'数字媒体241',
'电商231',
'电商232',
'电子商务241',
'人工智能241',
'数字媒体251',
'人工智能251',
'网络安全251',
'电商251',
'电商252'
);
-- 2) 临安校区
UPDATE xg_class_msg c
INNER JOIN xg_dorm_campus camp
ON camp.campus_name = '临安校区'
AND camp.deleted = '0'
SET
c.campus_id = camp.id,
c.campus_name = camp.campus_name,
c.update_time = NOW()
WHERE c.deleted = 0
AND c.class_name IN (
-- 数字制造 / 汽修 / 数控
'数字制造211',
'汽修221',
'数控221',
'数控241',
'数字制造221',
'数控231',
'数字制造231',
'汽修231',
'汽修232',
'数字制造241',
'汽修241',
'数字制造251',
'智能制造251',
'汽修251',
'产品检测251',
-- 中药
'中药211',
'中药221',
'中药231',
'中药232',
'中药241',
'中药251',
'中药252',
-- 园林 / 环境设计
'园林211',
'园林工程221',
'园林设计221',
'园林技术241',
'园林设计241',
'园林技术221',
'园林工程231',
'园林设计231',
'园林技术231',
'园林工程241',
'园林技术251',
'园林技术252',
'园林工程251',
'环境设计251'
);
-- 核对更新结果(按校区汇总)
SELECT campus_name, COUNT(*) AS cnt
FROM xg_class_msg
WHERE deleted = 0
AND campus_name IN ('西溪校区', '临安校区')
GROUP BY campus_name;
-- 确认无误后提交;有问题则 ROLLBACK
COMMIT;
-- ROLLBACK;