DROP PROCEDURE IF EXISTS raise;
CREATE PROCEDURE raise(@uld int)
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
SET @uld = (select ULD_ID from doctor_personal_details)
IF(@uld = NULL) THEN
SET MESSAGE_TEXT = ' error occurred';
END;
我在 doctor_personal_details
中有列 ULD_ID
,当 ULD_ID
中没有数据时,我需要显示错误消息。
最佳答案
您需要做的是检查是否存在提供的uld
记录,如果没有则返回SIGNAL
错误,例如:
BEGIN
DECLARE CNT INT;
SELECT COUNT(*) INTO CNT
FROM doctor_personal_details
WHERE ULD_ID = uld;
IF(C = 0) THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'No records exist with given uid';
ELSE
SELECT 'Success' AS message;
END IF;
END
关于mysql - 当所选列中没有值时抛出异常(存储过程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45274529/