當我INSERT是已經在資料庫中的用戶時,RETURN "Error_UsernameExist"應該觸發,但我從以下錯誤訊息中得到function:錯誤代碼:1062. 鍵“Username_UNIQUE”的重復條目“testUser”
以下功能:
CREATE FUNCTION `registration`(usernameP TEXT, passwordP TEXT, saltP BLOB) RETURNS TEXT
BEGIN
IF ((SELECT `Username` FROM `DEV`.`RUser` WHERE `Username` = usernameP) = 1) THEN
RETURN "Error_UsernameExist";
END IF;
INSERT INTO `DEV`.`RUser` (`Username`, `Password`, `Salt`) VALUES (usernameP, passwordP, saltP);
RETURN "OK";
END
uj5u.com熱心網友回復:
(SELECT `Username` FROM `DEV`.`RUser` WHERE `Username` = usernameP)計算為回傳的實際用戶名。假設 Username 不等于1,則您的 IF 陳述句不正確。將您的 IF 更改為
IF ((SELECT COUNT(`Username`) FROM `DEV`.`RUser` WHERE `Username` = usernameP) = 1)以檢查具有該用戶名的用戶數。您也可以改用 IF EXISTS。
IF EXISTS (SELECT `Username` FROM `DEV`.`RUser` WHERE `Username` = usernameP)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/411048.html
標籤:
