-- ============================================================================= -- 部门火山配置迁表:ai_dept_ark_config 唯一约束、数据搬迁、sys_dept 删除三列 -- 部署顺序:在已有 ai_dept_ark_config 与 sys_dept 火山列的前提下执行; -- 可重复执行 INSERT 段(NOT EXISTS 跳过已搬迁行)。 -- ============================================================================= -- 1) 一部门一行(若已存在同名索引请跳过本步) ALTER TABLE `ai_dept_ark_config` ADD UNIQUE INDEX `uk_dept_id` (`dept_id`); -- 2) 从 sys_dept 搬迁至 ai_dept_ark_config(仅一级、二级部门,且三字段至少其一非空) INSERT INTO `ai_dept_ark_config` (`dept_id`, `model_parm`, `project`, `byte_api_key`, `create_time`) SELECT d.`dept_id`, d.`model_parm`, d.`project`, d.`byte_api_key`, NOW() FROM `sys_dept` d WHERE d.`del_flag` = '0' AND d.`ancestors` IS NOT NULL AND ( (d.`parent_id` = 0 AND d.`ancestors` = '0') OR (CHAR_LENGTH(d.`ancestors`) - CHAR_LENGTH(REPLACE(d.`ancestors`, ',', ''))) = 1 ) AND ( NULLIF(TRIM(d.`byte_api_key`), '') IS NOT NULL OR NULLIF(TRIM(d.`project`), '') IS NOT NULL OR NULLIF(TRIM(d.`model_parm`), '') IS NOT NULL ) AND NOT EXISTS ( SELECT 1 FROM `ai_dept_ark_config` a WHERE a.`dept_id` = d.`dept_id` ); -- 3) 删除 sys_dept 上已迁移的火山列(搬迁完成后再执行) ALTER TABLE `sys_dept` DROP COLUMN `byte_api_key`, DROP COLUMN `project`, DROP COLUMN `model_parm`;