笔记同步团队人员.md 2.0 KB


notion-id: 1e8ca4d7-cb7b-80c5-a27c-f5855ec4b4

重要提醒: 在执行脚本之前,必须将人员ID信息录入到总团队信息→分团队信息部署好权限 []()

-- 创建备份表
CREATE TABLE wiz_kb_user_role_backup AS SELECT * FROM wiz_kb_user_role;
  • 备份数据表

    -- 检查将要添加的数据
    SELECT 
    t.KB_GUID as '团队ID',
    u.USER_GUID as '用户ID'
    FROM (
    SELECT DISTINCT KB_GUID FROM wiz_kb_user_role
    ) t
    CROSS JOIN (
    SELECT DISTINCT USER_GUID FROM wiz_kb_user_role
    ) u
    WHERE NOT EXISTS (
    SELECT 1 
    FROM wiz_kb_user_role e
    WHERE e.KB_GUID = t.KB_GUID 
    AND e.USER_GUID = u.USER_GUID
    )
    ORDER BY t.KB_GUID, u.USER_GUID;
    
  • 只用于查看将要添加的数据

  • 不会修改任何数据

  • 安全可靠

  • 建议先执行这个检查数据

    USE wizasent;
    
    -- 创建临时表来存储所有用户
    CREATE TEMPORARY TABLE temp_all_users AS 
    SELECT DISTINCT USER_GUID FROM wiz_kb_user_role;
    
    -- 创建临时表来存储所有团队
    CREATE TEMPORARY TABLE temp_all_teams AS 
    SELECT DISTINCT KB_GUID FROM wiz_kb_user_role;
    
    -- 创建临时表来存储已存在的组合
    CREATE TEMPORARY TABLE temp_existing_combinations AS 
    SELECT DISTINCT KB_GUID, USER_GUID FROM wiz_kb_user_role;
    
    -- 插入新组合
    INSERT INTO wiz_kb_user_role (
    KB_GUID,
    USER_GUID,
    USER_GROUP,
    DT_CREATED,
    ROLE_STATE,
    ROLE_NOTE
    )
    SELECT 
    t.KB_GUID,
    u.USER_GUID,
    1000,  -- 设置权限为读者
    NOW(), -- 当前时间
    1,     -- 状态为1
    'admin accept'  -- 备注
    FROM temp_all_teams t
    CROSS JOIN temp_all_users u
    WHERE NOT EXISTS (
    SELECT 1 
    FROM temp_existing_combinations e
    WHERE e.KB_GUID = t.KB_GUID 
    AND e.USER_GUID = u.USER_GUID
    );
    
    -- 清理临时表
    DROP TEMPORARY TABLE IF EXISTS temp_all_users;
    DROP TEMPORARY TABLE IF EXISTS temp_all_teams;
    DROP TEMPORARY TABLE IF EXISTS temp_existing_combinations;
    
  • 实际执行数据添加操作

  • 使用临时表提高效率

  • 最后会清理所有临时表

  • 建议在检查数据无误后执行