我有MSSQL背景。
我正在尝试通过右键单击'Functions' > 'Create Function'
在MySQL Workbench中创建一个函数。
我在窗口中插入了创建函数的文本,但是它说在最后一行missing 'if'
处sql中有错误。(下面的SQL)。我遗漏了什么?
第二季度(相关)
如果我使用函数SQL(而不是MySQL Workbench中的菜单)创建函数,则会创建该函数,但它不会出现在正在处理的模式中显示的“函数”中。在MySQL Workbench中创建函数的推荐方法是什么?
- 谢谢-谢谢
CREATE FUNCTION fnIsExcluded(ConcattedString NVARCHAR(15), InValue DECIMAL)
RETURNS BIT
BEGIN
DECLARE individual VARCHAR(20) DEFAULT NULL;
DECLARE ReturnValue BIT;
IF (LENGTH(ConcattedString)) < 1
THEN
SET ReturnValue = 0;
ELSE IF ConcattedString IS NULL
THEN
SET ReturnValue = 0;
ELSE IF InValue IS NULL
THEN
SET ReturnValue = 0;
ELSE
SET ReturnValue = 1;
END IF;
RETURN ReturnValue;
END;
1条答案
按热度按时间ui7jx7zq1#
您没有说明您使用的MySQL Workbench版本。
1)routine编辑器中的语法错误是因为旧版本的编辑器不能自动处理分隔符。因此,您需要一个命令来更改默认分隔符,例如:
(at文本顶部)以更改默认值(分号)到自定义(double dollar)。您必须这样做的原因是,在函数定义中需要默认分隔符,如果不更改,客户端(此处为MySQL Workbench)会错误地将函数命令拆分为单独的命令。但是,您可以更新到最新的MySQL Workbench版本(撰写本文时为6.2.3)以自动处理此问题。
2)通常数据库结构中的更改不能自动获取,因为这意味着以频繁的时间间隔加载所有数据库内容,这对于任何重要的数据库都是不可行的。因此,您必须通过单击刷新按钮手动触发此操作。
但是,某些更改(尤其是您在MySQL Workbench中自行添加或删除的内容)已经被跟踪,或者将在未来版本中跟踪。