-- =============================================================================
-- 若早期已按旧版 001 建表 biz_users，而运行时报错查 biz_user，可执行本脚本迁移表名。
-- 执行前备份数据库。若子表尚未创建，可跳过本脚本，直接 DROP biz_users 后重跑新版 001_biz_schema.sql。
-- =============================================================================

-- 若不存在 biz_users 则无需执行
-- 步骤：去外键引用 -> 重命名父表 ->（子表 FK 仍指向旧名时需重建，MySQL 8 重命名父表后约束名可能需检查）

-- 1) 删除引用 biz_users 的外键（子表若已存在）
SET @db = DATABASE();

SET @sql = (
  SELECT GROUP_CONCAT(CONCAT('ALTER TABLE `', TABLE_NAME, '` DROP FOREIGN KEY `', CONSTRAINT_NAME, '`') SEPARATOR '; ')
  FROM information_schema.KEY_COLUMN_USAGE
  WHERE TABLE_SCHEMA = @db
    AND REFERENCED_TABLE_NAME = 'biz_users'
);
-- 若上面为空则无子表 FK，可手动执行下面 RENAME

-- 手工示例（按实际约束名调整）：
-- ALTER TABLE `biz_subscriptions` DROP FOREIGN KEY `fk_biz_sub_user`;
-- ALTER TABLE `biz_api_tokens` DROP FOREIGN KEY `fk_biz_token_user`;
-- ALTER TABLE `biz_usage_monthly` DROP FOREIGN KEY `fk_biz_usage_user`;

-- 2) 重命名业务用户表
-- RENAME TABLE `biz_users` TO `biz_user`;

-- 3) 重新添加外键（与 001_biz_schema.sql 一致）
-- ALTER TABLE `biz_subscriptions`
--   ADD CONSTRAINT `fk_biz_sub_user` FOREIGN KEY (`user_id`) REFERENCES `biz_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
-- ALTER TABLE `biz_api_tokens`
--   ADD CONSTRAINT `fk_biz_token_user` FOREIGN KEY (`user_id`) REFERENCES `biz_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
-- ALTER TABLE `biz_usage_monthly`
--   ADD CONSTRAINT `fk_biz_usage_user` FOREIGN KEY (`user_id`) REFERENCES `biz_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- 更简单做法（无重要数据）：DROP 子表与 biz_users，再执行新版 001_biz_schema.sql 全量重建。
