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