-- 将「非种子」的重复账号 Demo01 改名为 Demo02，保留官方种子用户 Id = 1300000000117
-- 执行前请：USE 你的库名; 并做好备份
--
-- 表名取决于 Database.json → DbSettings.EnableUnderLine：
--   false：表 SysUser，列 Id / Account / RealName / UpdateTime（驼峰）
--   true ：表 sys_user，列 id / account / real_name / update_time（下划线）
-- 下面默认写下划线版；若库为 SysUser，把 sys_user 改为 SysUser、列名改为驼峰即可。

-- ========== 1. 预览 ==========
SELECT id,
       tenant_id,
       account,
       real_name,
       phone,
       remark,
       create_time
FROM sys_user
WHERE account IN ('Demo01', 'Demo02')
ORDER BY account, id;

-- ========== 2. 保留的种子 Demo01 Id（若与你库不一致请修改）==========
SET @keep_demo01_id = 1300000000117;

-- ========== 3. 目标账号 Demo02 必须尚不存在（框架全局账号唯一）==========
SELECT id, account, real_name
FROM sys_user
WHERE account = 'Demo02';
-- 上面若有结果：请先换一个未占用账号，并把下面 UPDATE 里的 Demo02 改成新名字

-- ========== 4. 重命名：非种子的 Demo01 → Demo02 ==========
START TRANSACTION;

UPDATE sys_user
SET account = 'Demo02',
    update_time = NOW(3)
WHERE account = 'Demo01'
  AND id <> @keep_demo01_id;

COMMIT;

-- ========== 5. 校验 ==========
SELECT id, tenant_id, account, real_name, phone
FROM sys_user
WHERE account IN ('Demo01', 'Demo02')
ORDER BY account, id;
-- 期望：一条 Demo01（id = @keep_demo01_id），一条 Demo02（原重复那条）

-- ========== 附录：若仍要物理删除非种子 Demo01（慎用）==========
-- 需先按 user_id 清理子表，见本文件历史版本或自行处理外键后再 DELETE。
