如何使用MySQL Workbench创建函数?

k97glaaz  于 2022-12-03  发布在  Mysql
关注(0)|答案(1)|浏览(347)

我有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;
ui7jx7zq

ui7jx7zq1#

您没有说明您使用的MySQL Workbench版本。
1)routine编辑器中的语法错误是因为旧版本的编辑器不能自动处理分隔符。因此,您需要一个命令来更改默认分隔符,例如:

delimiter $$

(at文本顶部)以更改默认值(分号)到自定义(double dollar)。您必须这样做的原因是,在函数定义中需要默认分隔符,如果不更改,客户端(此处为MySQL Workbench)会错误地将函数命令拆分为单独的命令。但是,您可以更新到最新的MySQL Workbench版本(撰写本文时为6.2.3)以自动处理此问题。
2)通常数据库结构中的更改不能自动获取,因为这意味着以频繁的时间间隔加载所有数据库内容,这对于任何重要的数据库都是不可行的。因此,您必须通过单击刷新按钮手动触发此操作。

但是,某些更改(尤其是您在MySQL Workbench中自行添加或删除的内容)已经被跟踪,或者将在未来版本中跟踪。

相关问题