diff --git a/doc/sql/transport/blade_mp_user_20261012.sql b/doc/sql/transport/blade_mp_user_20261012.sql index 32e2d94a..ff7ca12e 100644 --- a/doc/sql/transport/blade_mp_user_20261012.sql +++ b/doc/sql/transport/blade_mp_user_20261012.sql @@ -31,7 +31,7 @@ CREATE TABLE IF NOT EXISTS `blade_mp_user` ( `is_deleted` int NULL DEFAULT 0 COMMENT '是否已删除', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_mp_user_tenant_phone` (`tenant_id`, `phone`) USING BTREE, - UNIQUE KEY `uk_mp_user_tenant_openid` (`tenant_id`, `openid`) USING BTREE, + KEY `idx_mp_user_openid` (`tenant_id`, `openid`) USING BTREE, KEY `idx_mp_user_account` (`tenant_id`, `account`) USING BTREE, KEY `idx_mp_user_identities` (`identities`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '小程序用户表'; diff --git a/doc/sql/transport/blade_mp_user_openid_index_20261026.sql b/doc/sql/transport/blade_mp_user_openid_index_20261026.sql new file mode 100644 index 00000000..044ade03 --- /dev/null +++ b/doc/sql/transport/blade_mp_user_openid_index_20261026.sql @@ -0,0 +1,8 @@ +-- 小程序用户表 openid 索引:唯一键 uk_mp_user_tenant_openid 改为普通索引 idx_mp_user_openid(tenant_id, openid) +-- openid 是「该账号最近一次登录用的微信」的留痕,不是账号标识:允许为空,允许多个账号留下同一个 openid +-- 回滚(加回唯一键)前必须先把重复的 openid 置 NULL,否则唯一键 DDL 直接失败 +-- 部署时在业务库执行本脚本 + +ALTER TABLE `blade_mp_user` + DROP INDEX `uk_mp_user_tenant_openid`, + ADD INDEX `idx_mp_user_openid` (`tenant_id`, `openid`) USING BTREE;