Dis*_*ame 2 mysql stored-procedures stored-functions mariadb
我可以指定表列不是 NULL,但是如何使存储过程或函数仅与非空参数兼容?在参数名称后添加 NOT NULL 不起作用。
您需要自己验证传递的参数值。如果您使用的是 MySQL 5.5 及更高版本,则可以使用SIGNAL.
DELIMITER //
CREATE PROCEDURE my_procedure (IN param1 INT)
BEGIN
IF param1 IS NULL THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'NULL is not allowed.';
END IF;
-- do whatever
END//
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
这是一个SQLFiddle演示