Я думаю, что вы хотите обновить его до пароля OLD
, когда НОВЫЙ пароль не предоставляется.
DROP TRIGGER IF EXISTS upd_user;
DELIMITER $$
CREATE TRIGGER upd_user BEFORE UPDATE ON `user`
FOR EACH ROW BEGIN
IF (NEW.password IS NULL OR NEW.password = '') THEN
SET NEW.password = OLD.password;
ELSE
SET NEW.password = Password(NEW.Password);
END IF;
END$$
DELIMITER ;
Однако это означает, что пользователь никогда не сможет удалить пароль.
Если поле пароля (уже зашифрованное) отправляется обратно в обновлении mySQL, оно не будет пустым или пустым, и MySQL попытается повторить функцию Password () для него.Чтобы обнаружить это, используйте этот код вместо
DELIMITER $$
CREATE TRIGGER upd_user BEFORE UPDATE ON `user`
FOR EACH ROW BEGIN
IF (NEW.password IS NULL OR NEW.password = '' OR NEW.password = OLD.password) THEN
SET NEW.password = OLD.password;
ELSE
SET NEW.password = Password(NEW.Password);
END IF;
END$$
DELIMITER ;