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で変更する必要はありません。 。