簡體   English   中英

如何使用 MySQL Workbench 創建函數?

[英]How to create a function using MySQL Workbench?

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

您沒有說明您使用的是哪個版本的 MySQL Workbench。

1)例程編輯器中的語法錯誤你是因為在舊版本中編輯器沒有自動處理分隔符。 因此,您需要一個命令來更改默認分隔符,例如:

delimiter $$

(在文本頂部)將默認值(分號)更改為自定義值(雙美元)。 您必須這樣做的原因是函數定義中需要默認分隔符,如果不更改客戶端(此處為 MySQL Workbench),則會錯誤地將您的函數命令拆分為單獨的命令。 但是,您可以更新到最新的 MySQL Workbench 版本(在撰寫本文時為 6.2.3)以自動處理此問題。

2) 通常無法自動獲取 db 結構中的更改,因為這意味着以頻繁的間隔加載所有 db 內容,這對於任何非平凡的 db 都是不可行的。 因此,您必須通過單擊刷新按鈕手動觸發此操作。

在此處輸入圖片說明

但是,某些更改(尤其是您在 MySQL Workbench 中自己進行的添加或刪除)已經被跟蹤或將在未來版本中存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM