我对 MYSQL 函数和异常处理不是很熟悉。经过所有的研究,我可以在下面提出,但没有任何收获。
如果插入语句执行失败,我试图返回 0,否则返回 1。异常被引发而不是被处理。我哪里错了?
CREATE DEFINER=`myusr`@`localhost` FUNCTION `func1`(p1 varchar(50), p2 varchar(6)) RETURNS int(1)
READS SQL DATA
DETERMINISTIC
BEGIN
DECLARE EXP DATETIME;
DECLARE RINT INT(1);
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
RETURN 0;
END;
SET exp = DATE_ADD(NOW(), INTERVAL 15 MINUTE);
INSERT INTO `mydb`.`my_tbl`
(`C1`,
`C2`,
`C3`)
VALUES
(p1, p2, exp);
SET RINT = 1;
RETURN RINT;
END
表 - my_tbl
成功案例 - func1('ABC','123456')
例外情况 - func1('ABC','123456789')
编辑 -添加截图