MySQLでカーソルトリガーを使用する方法

MySQLでカーソルトリガーを使用する方法

カーソル

選択クエリによって返される行のセットは、結果セットと呼ばれます。結果セット内の行は、入力した SQL ステートメントに基づいて取得されます。カーソルを使用しないと、最初の行、最初の 10 行、または次の行を取得することはできません。

以下はカーソルの一般的な現象と特徴です。

  • カーソルを読み取り専用としてマークする機能。つまり、データの読み取りは可能だが、更新や削除はできない。
  • 実行可能な方向操作を制御する機能 (前方、後方、最初、最後、絶対位置、相対位置など)
  • 一部のアクションを編集可能としてマークし、他のアクションを編集不可としてマークする機能
  • スコープを設定できるため、カーソルを作成した特定のリクエストまたはすべてのリクエストからアクセスできるようになります。
  • カーソル宣言はハンドラ宣言の前、後に置く必要があります。
  • 変数と条件の宣言。
  • カーソルが開かれると、カーソルは最初のレコードを指すのではなく、最初のレコードの先頭を指すことに注意してください。

カーソルを使用する手順は次のとおりです

  • カーソルを宣言します。このプロセスではまだデータの取得を開始していません。
  • カーソルを開いて使用する
  • 行の取得
  • カーソルを閉じて、カーソルを離します
csカーソルを宣言する 
のために 
選択*
お客様から
cust_email が NULL の場合;

すべて問題ないと思っていたのに、エラーが発生しました

ここに画像の説明を挿入

構文に間違いはありません。

cs の前に @ を追加してみてください。実行時にエラー メッセージが引き続き表示されます。

カーソルはストアド プロシージャでのみ使用できると言う人もいます。それは本当ですか?

では、ストアドプロシージャでカーソルを使ってみましょう。

CREATE PROCEDURE プロシージャ1
()
始める
	cur1 カーソルを宣言する 
	のために 
	選択* 
	お客様から 
	cust_id が NULL の場合 tianyoutianyou;
終わり

まだエラー

もう一度変更

区切り文字 //
CREATE PROCEDURE プロシージャ1
()
始める
	cur1 カーソルを宣言する 
	のために 
	選択* 
	お客様から 
	cust_id が NULL の場合;
終わり

今回はカーソルの宣言に成功しました

区切り文字を変更したため、カーソルが正常に作成されたのでしょうか?

もう一度やり直しましょう

プロシージャプロシージャ1() を作成する
cur1 カーソルを宣言する 
のために 
選択* 
お客様から 
cust_id が NULL の場合;

これも間違っています。ストアド プロシージャを使用せずにカーソルを正常に作成できるかどうかを確認してみましょう。

区切り文字 //
cur2 カーソルを宣言する
のために 
選択*
注文から;

あるいはこれ

区切り文字 //
cur2 カーソルを宣言する
のために 
選択*
注文から //

これら2つのタイプにも8行あります

何度も試した結果、唯一成功したのは次の文です。

区切り文字 //
プロシージャプロシージャ1() を作成する
始める 
	cur1 カーソルを宣言する 
	のために 
	選択* 
	お客様から 
	cust_id が NULL の場合;
終わり

次にカーソルを使ってデータを取得します

残念ながら、MySQL には Oracle の %ROWTYPE のようなデータ型はありません。カーソルを使用して、customers テーブル内の特定のタイプのデータを取得してみましょう。

トリガー

トリガーは、データベース内で特定のアクティビティが発生したときに自動的に実行される特定のストアド プロシージャです。一般的に、制約はトリガーよりも速く処理されるため、可能な限り制約を使用する必要があります。

MySQL でカーソル トリガーを使用する方法についての記事はこれで終わりです。MySQL カーソル トリガーに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL カーソル関数と使用法
  • MySQL カーソルの定義と使用法
  • MySQLでカーソルを宣言する方法
  • MySQLカーソルの詳細な紹介

<<:  複数の X 軸を使用して 7 日間の天気予報を実現するための Echarts サンプル コード

>>:  CSS の clip-path プロパティの使用方法の詳細な説明

ブログ    

推薦する

Linux ドライバ開発でよく使われる関数 copy_from_user open read write の詳細な説明

目次Linux ドライバーの共通機能 (copy_from_user open read write...

MySQL ページングパフォーマンスの調査

一般的なページング方法: 1. エスカレーター方式エスカレーター方式では通常、前のページ/次のページ...

Linux mysql-5.6 でルート パスワードをリセットする方法

1. MySQL サービスが起動しているかどうかを確認します。起動している場合は、MySQL サービ...

MySQLの結合の基本原理についての簡単な説明

目次結合アルゴリズム駆動テーブルと非駆動テーブルの違い1. 単純なネストループ結合、単純なネスト、イ...

良いと思う国内のデザインサイトをいくつか選んでみました。

<br />私が良いと思った国内のデザインサイトをまとめてみました。広告ではありません!...

nginx共有メモリの仕組みの詳細な説明

Nginx の共有メモリは、高いパフォーマンスを実現できる主な理由の 1 つであり、主にファイル キ...

Centos6にMysql5.7をインストールする方法

環境セントロス6.6 MySQL 5.7インストールシステムがインストールされている場合は、まずアン...

Centos7.3 Nginx をインストールして展開し、https を設定する方法

設置環境1. gccのインストールnginxをインストールするには、まず公式サイトからダウンロードし...

Vue テンプレートのコンパイルの詳細

目次1. 解析する1.1 傍受のルール1.2 傍受プロセス部分1.3 パーサーの概要2. 最適化する...

MySQL トランザクション分析

取引トランザクションはビジネス ロジックの基本単位です。各トランザクションは一連の SQL ステート...

Webデザインチュートリアル(1):手順と全体レイアウト

<br />注:ウェブサイトの種類を示すものを除くすべてのテキストは、企業サイト用です。...

Linuxテキスト処理ツールの詳細な説明

1. /etc/passwdファイル内のデフォルトシェルが/sbin/nologinではないユーザー...

フロントエンドJSサンドボックスを実装するいくつかの方法についての簡単な説明

目次序文iframeはサンドボックスを実装しますdiffメソッドを使用したサンドボックスの実装プロキ...

スクロールバーのスタイルを設定するための CSS サンプルコード

スクロール バーのスタイルを設定するための CSS 実装コードは次のとおりです。 •::-webki...

HTMLデータ送信投稿_PowerNode Java Academy

HTTP/1.1 プロトコルで指定されている HTTP リクエスト メソッドには、OPTIONS、...