3
這可能是對你最微不足道的問題,自定義錯誤信息......下面是一個存儲功能我已經在MySQL創建:如何在MySQL存儲功能
DROP PROCEDURE IF EXISTS teamSize;
DELIMITER //
CREATE PROCEDURE teamSize(IN teamName VARCHAR(50), IN teamYear INT(4), OUT noOfPlayers INT)
BEGIN
IF teamName IN (SELECT teamName FROM team) THEN
SELECT COUNT(playerID) INTO noOfPlayers
FROM team
JOIN teamAllocation
ON teamAllocation.teamID = team.teamID
WHERE team.teamName = teamName
AND team.teamYear = teamYear;
ELSE
SELECT "That team does not exist in the database" AS "Error Message";
END IF;
END //
DELIMITER ;
我做了這個功能,所以我可以計算給定年份中給定團隊的規模。團隊名稱和團隊年份被解析爲參數值。對於這個功能,如果數據庫中不存在輸入用戶的團隊名稱,則需要顯示用戶友好的錯誤消息。
例如:我在一個團隊,確實存在我得到下面的結果類型,如我所料:
mysql> CALL teamSize("U11 Orange", 2012, @noOfPlayers);
--------------
CALL teamSize("U11 Orange", 2012, @noOfPlayers)
--------------
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @noOfPlayers;
--------------
SELECT @noOfPlayers
--------------
+--------------+
| @noOfPlayers |
+--------------+
| 2 |
+--------------+
1 row in set (0.00 sec)
mysql>
......但是,如果我在一個團隊,我知道在不存在輸入我得到以下數據庫:
mysql> CALL teamSize("jkgefkrkvbey", 2012, @teamSize);
--------------
CALL teamSize("jkgefkrkvbey", 2012, @teamSize)
--------------
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @teamSize;
--------------
SELECT @teamSize
--------------
+-----------+
| @teamSize |
+-----------+
| 0 |
+-----------+
1 row in set (0.00 sec)
mysql>
我所想的,團隊名稱解析爲函數不存在的情況是類似以下內容:
+------------------------------------------+
| Error Message |
+------------------------------------------+
| That team does not exist in the database |
+------------------------------------------+
1 row in set (0.00 sec)
mysql>
如果有人對我如何實現上述內容有所反饋或建議,我們將非常感謝。
在此先感謝!