load(); } else { \Dotenv\Dotenv::createMutable(BASE_PATH)->load(); } } \Webman\Config::load(BASE_PATH . '/config', ['route', 'plugin']); \Webman\ThinkOrm\ThinkOrm::start(null); use support\think\Db; echo "检查 (dept_id, username) 重复...\n"; $dupes = Db::query( 'SELECT dept_id, username, COUNT(*) AS c FROM dice_player WHERE username IS NOT NULL AND username <> \'\' GROUP BY dept_id, username HAVING c > 1 LIMIT 20' ); if (!empty($dupes)) { echo "存在重复记录,请先处理后再执行:\n"; print_r($dupes); exit(1); } $indexes = Db::query("SHOW INDEX FROM `dice_player` WHERE Key_name = 'idx_dice_player_username'"); if (!empty($indexes)) { Db::execute('ALTER TABLE `dice_player` DROP INDEX `idx_dice_player_username`'); echo "已删除 idx_dice_player_username\n"; } $uk = Db::query("SHOW INDEX FROM `dice_player` WHERE Key_name = 'uk_dice_player_dept_username'"); if (empty($uk)) { Db::execute( 'ALTER TABLE `dice_player` ADD UNIQUE INDEX `uk_dice_player_dept_username` (`dept_id`, `username`)' ); echo "已创建 uk_dice_player_dept_username\n"; } else { echo "uk_dice_player_dept_username 已存在,跳过\n"; } echo "完成\n";