-- PBKDF2 哈希长度超过 64 时拒绝回退,避免截断管理员密码。 DELIMITER // CREATE PROCEDURE rollback_v2_p4_admin() BEGIN IF EXISTS (SELECT 1 FROM admin_user WHERE CHAR_LENGTH(password_hash) > 64) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'V2 rollback blocked: PBKDF2 password hashes already exist'; END IF; ALTER TABLE admin_user MODIFY COLUMN password_hash CHAR(64) NOT NULL COMMENT '密码 SHA-256 hex'; END // DELIMITER ; CALL rollback_v2_p4_admin(); DROP PROCEDURE rollback_v2_p4_admin;