SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 外管登录不再接受客户端选择 App，因此 username 必须在整张账号表中唯一，
-- 服务端才能仅凭账号确定唯一租户。该 DDL 不改写任何账号，也不会自动重命名冲突凭据：
-- 若历史数据存在同名账号，唯一索引构建会失败并保留原复合索引，要求人工确认归属后再重跑。
-- external_admin_accounts 是小型凭据表；INPLACE + LOCK=NONE 只扫描该表建立二级索引，
-- 不扫描 users、房间、钱包等业务表，并允许迁移期间继续读写。并发写入若制造同名账号，
-- MySQL 会让索引构建失败而不是提交不唯一结构，保持 fail-closed。
ALTER TABLE external_admin_accounts
  ADD UNIQUE KEY uk_external_admin_accounts_username (username),
  DROP INDEX uk_external_admin_accounts_app_username,
  ALGORITHM=INPLACE,
  LOCK=NONE;
