gpt4 book ai didi

mysql - 如何让MySQL程序检测错误

转载 作者:行者123 更新时间:2023-11-30 00:21:41 26 4
gpt4 key购买 nike

我正在尝试编写一个输入发票号的存储过程。和日期,并尝试将日期更新到表行。如果成功它应该返回 1,如果失败则返回 0。我的代码如下。我得到的是它总是返回 1,但仅在日期有效时更新表。如果更新不成功,我希望它返回 0。感谢任何帮助,谢谢。

CREATE DEFINER=`root`@`localhost` FUNCTION `invoice_paid_date`(`inv_no` INT,    
`date_paid` DATE)
RETURNS SMALLINT
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'attempt to update paid_date in table invoice'
BEGIN
declare exit handler for sqlwarning, sqlexception return 0;
update invoice set paid_date = date_paid where invoice_no = inv_no;
return 1;
END

最佳答案

试试这个:

CREATE DEFINER=`root`@`localhost` FUNCTION `invoice_paid_date`(`inv_no` INT,    
`date_paid` DATE)
RETURNS SMALLINT
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'attempt to update paid_date in table invoice'
BEGIN
DECLARE id INT DEFAULT 1;
DECLARE EXIT HANDLER FOR SQLEXCEPTION SQLWARNING
BEGIN
SET id = 0;
RETURN 0;
END;

IF id = 1 THEN
update invoice set paid_date = date_paid where invoice_no = inv_no;
return 1;
END IF;
END

关于mysql - 如何让MySQL程序检测错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23177086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com