我有一个无法很好执行的存储函数,但是我不知道自己在做什么错。我想检查密钥是否存在于数据库中。
如果是的话->然后更新
其他->创建
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 ;