为什么不只将a存储VARCHAR在声明的INTEGER变量中?DELIMITER $$ DROP FUNCTION IF EXISTS `raise_error` $$CREATE FUNCTION `raise_error`(MESSAGE VARCHAR(255)) RETURNS INTEGER DETERMINISTIC BEGIN DECLARE ERROR INTEGER; set ERROR := MESSAGE; RETURN 0;END $$ DELIMITER ;-- set @foo := raise_error('something failed'); -- or within a query错误信息是:不正确的整数值:第1行的“ ERROR”列的“ something failed”它不是完美的,但是它给出了一个漂亮的描述性消息,您不必编写任何扩展DLL。