gpt4 book ai didi

带有 return 语句的存储函数中的 MYSQL 异常处理

转载 作者:行者123 更新时间:2023-11-29 09:37:47 24 4
gpt4 key购买 nike

表格

create table EMP(id int primary key, name varchar(50), contact int(10) unique);

我想编写添加员工的存储函数,如果插入命令成功执行,它将返回1,如果联系号码重复,它将返回0。

在Oracle中,我编写的函数如下

create or replace function addEMP(eID in int, eName in varchar, eContact in number)
return number as
BEGIN
insert into EMP values(eID, eName, eContact);
return 1;
EXCEPTION
when DUP_VAL_ON_INDEX then return 0;
END;

同样,如何处理 MYSQL 存储函数中的异常并返回一些值?

在 Oracle 中,我可以根据异常返回一个值。例如。

create or replace function Function_Name(--Parameter_List--)
return number as
BEGIN
--Statements...
EXCEPTION
WHEN exception_1 THEN return 1;
WHEN exception_2 THEN return 2;
WHEN exception_3 THEN return 3;
END;

如何在 MYSQL 存储函数中实现相同的逻辑?

最佳答案

如果您想捕获错误,请使用退出处理程序

create procedure sp_proc(in_id int, in_name varchar(50), in_contact int)
begin

declare exit handler for sqlexception
begin
select 0;
end;


insert into EMP (id, name, contact) values(in, in_id, in_contact);
select 1;

end

要根据错误返回不同的值,请使用 GET DIAGNOSTICS -命令。

关于带有 return 语句的存储函数中的 MYSQL 异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57234864/

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