-- 修复 menu 表非法 GUID(Id/PId 含非十六进制字符,如 dp100001 中的 p) -- 症状:登录 / get-menu-tree → Could not parse CHAR(36) value as Guid: dp100001-... -- GUID 仅允许 0-9、a-f -- -- ⚠️ 在 RBAC 库执行 SELECT 'before fix' AS stage, `Id`, `PId`, `Name`, `Route`, `PermissionCode` FROM `menu` WHERE `Id` LIKE 'dp100001-%' OR `PId` LIKE 'dp100001-%'; -- 先改子节点 PId,再改 Id UPDATE `menu` SET `PId` = REPLACE(`PId`, 'dp100001-', 'da100001-') WHERE `PId` LIKE 'dp100001-%'; UPDATE `menu` SET `Id` = REPLACE(`Id`, 'dp100001-', 'da100001-') WHERE `Id` LIKE 'dp100001-%'; SELECT 'after fix (should be empty)' AS stage, `Id`, `PId`, `Name`, `Route` FROM `menu` WHERE `Id` LIKE 'dp100001-%' OR `PId` LIKE 'dp100001-%' OR (`Id` NOT REGEXP '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$');