MySQL を初めて学ぶときは、区切り文字の本当の目的を理解していないかもしれません。区切り文字は、ストアド プロシージャ、トリガー、関数など、MySQL のさまざまな場所で使用されます。 Oracle を学習した人にとって、MySQL を学ぶのは非常に奇妙で困惑するでしょう。 実際には、コマンドが終了したかどうか、および MySQL がそれを実行できるかどうかを MySQL インタープリターに伝えます。 デフォルトでは、区切り文字はセミコロン (;) です。 コマンドライン クライアントでは、コマンド行がセミコロンで終わる場合、mysql は Enter キーを押すとコマンドを実行します。次の文を入力すると
次に Enter キーを押すと、MySQL はすぐにステートメントを実行します。 しかし、場合によっては、MySQL でこれを実行したくないことがあります。複数のステートメントを入力することができ、ステートメントにはセミコロンを含めることができます。 コマンドラインクライアントに次の文を入力しようとすると mysql> CREATE FUNCTION `SHORTEN`(S VARCHAR(255), N INT) mysql> varchar(255) を返します mysql> 開始 mysql> ISNULLの場合 mysql> <strong> '' を返します; </strong> mysql> N < 15の場合 mysql> RETURN LEFT(S, N); mysql> それ以外の場合 mysql> CHAR_LENGTH(S) <= Nの場合 mysql> S を返します。 mysql> それ以外の場合 mysql> RETURN CONCAT(LEFT(S, N-10), '...', RIGHT(S, 5)); mysql> END IF; mysql> END IF; mysql> 終了; デフォルトでは、ユーザーがすべてのステートメントを入力するまで待ってからステートメント全体を実行することはできません。 mysql はセミコロンに遭遇すると自動的に実行されるためです。 つまり、 RETURN ''; ステートメントが実行されると、MySQL インタープリタが実行されます。 この場合、区切り文字を // や $$ などの他の記号に事前に置き換える必要があります。 mysql> 区切り文字 // mysql> CREATE FUNCTION `SHORTEN`(S VARCHAR(255), N INT) mysql> varchar(255) を返します mysql> 開始 mysql> ISNULLの場合 mysql> '' を返します。 mysql> N < 15の場合 mysql> RETURN LEFT(S, N); mysql> それ以外の場合 mysql> CHAR_LENGTH(S) <= Nの場合 mysql> S を返します。 mysql> それ以外の場合 mysql> RETURN CONCAT(LEFT(S, N-10), '...', RIGHT(S, 5)); mysql> END IF; mysql> END IF; mysql> 終了;// この方法では、MySQL インタープリターは // が出現した場合にのみこのステートメントを実行します。 その上。 MySQL のストレージ プロセスでは、次の点に注意する必要があります。 proc_while_test が存在する場合は PROCEDURE を削除します。 デリミタ;; CREATE DEFINER = root@localhost PROCEDURE proc_while_test(IN n int) 始める i int を宣言します。 int を宣言します。 i = 0 に設定します。 s = 0 に設定します。 i <= n の場合 s = s + i を設定します。i++ を設定します。 i = i + 1 と設定します。 終了WHILE; s を選択します。 終わり ;; 区切り文字 ; 上記の例では、set i++; により while ループ全体でエラーが報告されます。 MySQL ストアド プロシージャでは、i++ をこのように記述することはできません。 i=i+1 の形式で記述する必要があります。 補足:Mysqlにおける区切り文字の役割を見てみましょう 1. 区切り文字 delimiter は MySQL の区切り文字です。MySQL クライアントのデフォルトの区切り文字はセミコロン (;) です。 2. 区切り文字の使用 前の記事では、MySQLトリガーを設定する例があります。 mysql> 区切り文字 // mysql> アカウントの更新前にトリガー upd_check を作成する -> 各行ごとに -> 開始 -> new.amount < 0 の場合 -> new.amount=0 を設定します。 -> elseif new.amount > 100 の場合 -> new.amount を 100 に設定します。 -> 終了の場合; -> 終了; -> // クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql> 区切り文字; 上記は、まずセパレータを//に設定し、 次の // に遭遇するまで、ステートメント全体は実行されません。 実行後、最後の行 delimiter; は MySQL 区切り文字をセミコロンにリセットします。 変更しない場合、このセッション内のすべての区切り文字は // に基づきます。 要約する 上記は、Mysql における区切り文字の役割の詳細な説明です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。 以下もご興味があるかもしれません:
|
>>: Centos7 での nginx のインストールと設定に関する詳細なチュートリアル
指定したサイズより大きいファイルを検索するには、find コマンドを使用します。 検索 / -typ...
目次基本的な説明AST 解析レンダリング機能通常コンポーネントと動的コンポーネントの比較ファクトリ関...
キーペアの分離1 つ以上の Linux インスタンスから SSH キー ペアのバインドを解除します。...
目次MySQL テーブルの断片化の原因行の断片化行内断片化空き領域の断片化MySQL で極度に断片化...
Robots.txt はプレーンテキスト ファイルであり、Web サイト管理者は、ロボットによるアク...
これは、Linux 管理者だけでなく、私たち全員にとって非常に重要なトピックです。つまり、IT イン...
1. cmakeをインストールする1. cmakeの圧縮パッケージを解凍する [root@mysql...
次に、2 つのテーブルを作成し、一連の SQL 文を実行します。SQL 文の実行後にテーブル内のデー...
オペレーティング システム: Win7 64 ビット Ultimate Edition MySQL ...
おすすめの読み物: MySQL 8.0.19 は、間違ったパスワードを 3 回入力するとアカウント ...
目次1. 反応する基本的な使い方注目すべき機能クラスコンポーネント仮想DOMライフサイクルメソッドJ...
適応型レイアウトは、実際のアプリケーションでますます一般的になっています。今日は、主にフローティング...
序文この章では、基本的な Linux 関数と epoll 呼び出しを使用して、Linux 上で実行で...
目次1. ウィザードに従って仮想マシンを作成します2. オペレーティングシステムをインストールします...
序文新しい VPS を購入しました。新しい VPS のデータ ディスクはデフォルトではシステムにマウ...