feat: 支持会员编号
This commit is contained in:
54
sql-scripts/add-member-number-migration.sql
Normal file
54
sql-scripts/add-member-number-migration.sql
Normal file
@@ -0,0 +1,54 @@
|
||||
-- 会员编号字段迁移脚本
|
||||
-- 执行日期: 2025-09-26
|
||||
-- 描述: 为用户表添加会员编号字段,按照创建时间从1开始递增编号
|
||||
|
||||
-- Step 1: 添加会员编号字段
|
||||
ALTER TABLE `t_users`
|
||||
ADD COLUMN `member_number` INT NULL COMMENT '会员编号(按注册时间递增)' AFTER `gender`;
|
||||
|
||||
-- Step 2: 创建索引以提高查询性能
|
||||
CREATE INDEX `idx_member_number` ON `t_users` (`member_number`);
|
||||
|
||||
-- Step 3: 为现有用户按照创建时间分配会员编号(从1开始递增)
|
||||
SET @row_number = 0;
|
||||
UPDATE `t_users`
|
||||
SET `member_number` = (@row_number := @row_number + 1)
|
||||
WHERE `member_number` IS NULL
|
||||
ORDER BY `created_at` ASC;
|
||||
|
||||
-- Step 4: 验证更新结果
|
||||
SELECT
|
||||
COUNT(*) as total_users,
|
||||
MIN(member_number) as min_member_number,
|
||||
MAX(member_number) as max_member_number,
|
||||
COUNT(DISTINCT member_number) as unique_member_numbers
|
||||
FROM `t_users`
|
||||
WHERE `member_number` IS NOT NULL;
|
||||
|
||||
-- Step 5: 显示前10个用户的会员编号分配情况
|
||||
SELECT
|
||||
`id`,
|
||||
`name`,
|
||||
`member_number`,
|
||||
`created_at`,
|
||||
`is_guest`
|
||||
FROM `t_users`
|
||||
WHERE `member_number` IS NOT NULL
|
||||
ORDER BY `member_number` ASC
|
||||
LIMIT 10;
|
||||
|
||||
-- Step 6: 检查是否有重复的会员编号(应该为0)
|
||||
SELECT
|
||||
member_number,
|
||||
COUNT(*) as count
|
||||
FROM `t_users`
|
||||
WHERE `member_number` IS NOT NULL
|
||||
GROUP BY `member_number`
|
||||
HAVING COUNT(*) > 1;
|
||||
|
||||
-- 注意事项:
|
||||
-- 1. 此脚本会为所有现有用户分配会员编号,按照创建时间排序
|
||||
-- 2. 会员编号从1开始递增
|
||||
-- 3. 包含游客用户也会分配编号
|
||||
-- 4. 如果只希望为正式用户(非游客)分配编号,请在更新语句中添加条件: WHERE `member_number` IS NULL AND `is_guest` = 0
|
||||
-- 5. 执行前请备份数据库
|
||||
Reference in New Issue
Block a user