mysql - MySQL存储函数给出错误(if - else)
问题描述
我有一个无法很好执行的存储函数,但我不知道我做错了什么。我想检查数据库中是否存在密钥。
- 如果是这样->然后更新
- 其他 -> 创建
BEGIN
IF EXISTS(SELECT MenuItemID FROM menuitem WHERE MenuItemID=_MenuItemID)
BEGIN
UPDATE menuitem SET MenuID=_MenuID,ParentMenuID=_ParentMenuID,PosIndex=_PosIndex,XamlFileID=_XamlFileID,CanExpand=_CanExpand WHERE MenuItemID=_MenuItemID;
END
ELSE
BEGIN
INSERT INTO menuitem (MenuItemID,MenuID,ParentMenuID,PosIndex,XamlFileID,CanExpand) VALUES (_MenuIt5nuID,_ParentMenuID,_PosIndex,_XamlFileID,_CanExpand);
END
RETURN ('success');
END
解决方案
修复语法错误 - 您将需要调整输入参数。
drop function if exists f;
delimiter $$
create function f(inf varchar(10))
returns varchar(10)
BEGIN
IF EXISTS(SELECT MenuItemID FROM menuitem WHERE MenuItemID=_MenuItemID) then
UPDATE menuitem
SET MenuID=_MenuID,ParentMenuID=_ParentMenuID,PosIndex=_PosIndex,XamlFileID=_XamlFileID,CanExpand=_CanExpand
WHERE MenuItemID=_MenuItemID;
ELSE
INSERT INTO menuitem (MenuItemID,MenuID,ParentMenuID,PosIndex,XamlFileID,CanExpand) VALUES
(_MenuIt5nuID,_ParentMenuID,_PosIndex,_XamlFileID,_CanExpand);
end if;
RETURN ('success');
END $$
delimiter ;
推荐阅读
- python - Python Json 在带有名称的 jsonfile 中创建一个列表
- solidity - Remix Debugger 我需要重新编译吗?
- c# - 可搜索的动态组合框 WPF
- c++ - 以 union 作为方法参数
- next.js - 如何播放具有多种分辨率的 HLS 视频(m3u8 播放列表)?
- qt - 如何从 .prl 文件中构建 qt .lib 文件
- loader - Pixi js - 加载程序没有达到 100% 的进度
- opencv - 关于 cv2.fillpoly 的第三个参数
- java - Greenfoot Kara ZigZag 代码无法正常工作
- java - 获取枚举类值到下拉列表