-- V21: 修复会员手机号唯一索引对空串冲突(不填手机号的会员注册必失败) -- 根因:member.phone 为 NOT NULL DEFAULT '' 且 UNIQUE KEY uk_member_phone(phone), -- 多个 '' 互相撞键(MySQL 唯一索引把 '' 视为普通值,不允许重复)。 -- 修复:列改为可空、默认 NULL(MySQL 唯一索引允许多个 NULL,真实手机号仍唯一); -- 并把历史遗留的 '' 清洗为 NULL。 -- 说明:本环境 Flyway 未自动执行,需手工执行本文件(与 V3~V20 一致)。 ALTER TABLE `member` MODIFY COLUMN `phone` VARCHAR(20) NULL DEFAULT NULL COMMENT '手机号'; UPDATE `member` SET `phone` = NULL WHERE `phone` = '';