sql >> データベース >  >> RDS >> Mysql

MySQLdbを介して関数を作成する

    DELIMITER コマンドはMySQLシェルクライアントに組み込まれており、そのプログラム(およびMySQLクエリブラウザ)によってのみ認識されます。 DELIMITERを使用する必要はありません APIを介してSQLステートメントを直接実行する場合。

    DELIMITERの目的 CREATE FUNCTIONの終了に関するあいまいさを回避するのに役立ちます ステートメント、ステートメント自体にセミコロン文字を含めることができる場合。これは、デフォルトでセミコロンがSQLステートメントを終了するシェルクライアントでは重要です。関数(またはトリガーまたはプロシージャ)の本体を送信するには、ステートメントターミネータを他の文字に設定する必要があります。

    CREATE FUNCTION trivial_func (radius float) 
        RETURNS FLOAT
    
        BEGIN
        IF radius > 1 THEN
            RETURN 0.0; <-- does this semicolon terminate RETURN or CREATE FUNCTION?
        ELSE
            RETURN 1.0;
        END IF;
    END
    

    APIでは通常一度に1つのSQLステートメントを送信できるため、あいまいさはありません。インターフェイスは、関数定義の本体内のセミコロンがCREATE FUNCTION全体を終了しないことを認識しています。 声明。したがって、ステートメントターミネータをDELIMITERで変更する必要はありません。 。



    1. MySQL-ストアドプロシージャで例外をスローする方法は?

    2. mysqldumpをロードするより速い方法はありますか?

    3. 壁を壊せ!データのサイロ化を解除する方法

    4. PostgreSQLのセキュリティ監査の自動化