カーソルカーソルは、結果セット内のデータを表示または処理するために使用される方法です。カーソルを使用すると、結果セット内のデータを一度に 1 行以上前方または後方に移動する機能が提供されます。 カーソルの使い方カーソルを定義します。テーブルに対してカーソル名 CURSOR を宣言します。(テーブルは選択の結果セットにすることもできます) 始める #カスタム変数を宣言するdeclare c_stgId int; c_stgName varchar(50) を宣言します。 #カーソル終了変数を宣言します。declare done INT DEFAULT 0; #カーソル cr と、カーソルが結果セットを読み取った後の最終処理メソッドを宣言します。declare cr cursor for select Name,StgId from StgSummary limit 3; 見つからない場合の継続ハンドラを宣言し、done = 1 を設定します。 # カーソルを開く open cr; # ループ readLoop: LOOP # カーソル内の値を取得し、変数に割り当てます fetch cr into c_stgName,c_stgId; # カーソルが下端に到達したかどうかを判定します。到達した場合はカーソルを終了します。# この判定に注意してください IF done = 1 THEN readLoop を終了します。 終了の場合; c_stgName、c_stgIdを選択します。 ループ終了 readLoop; -- カーソルを閉じます close cr; 終わり 変数宣言ステートメントに関する注意:
カスタム変数の命名に関する注意: カスタム変数の名前は、カーソル結果セット フィールドの名前と同じにしないでください。同じ場合、変数へのカーソルの割り当ては無効になります。 一時テーブル一時テーブルは現在の接続でのみ表示されます。接続が閉じられると、MySQL は自動的にテーブルを削除し、すべてのスペースを解放します。したがって、異なる接続で同じ名前の一時テーブルを作成し、この接続に属する一時テーブルに対して操作を実行することができます。 一時テーブルStgSummary(を作成します 名前 VARCHAR(50) NOT NULL, StgId INT NOT NULL デフォルト 0 ); 一時テーブルの使用に関する制限
テーブル orig_name を変更して、新しい名前に変更します。
一時テーブルが存在する場合は削除します (StgTempTable)。 カーソル ループを使用してストアド プロシージャ内の一時テーブル データを読み取る始める ## 一時テーブルを作成する CREATE TEMPORARY TABLE if not exists StgSummary( 名前 VARCHAR(50) NOT NULL, StgId INT NOT NULL デフォルト 0 ); テーブル StgSummary を切り捨てます。 ## 一時テーブルデータを追加する INSERT INTO StgSummary(Name,StgId) 「一時データ」を選択、1 始める #カスタム変数は c_stgId int を宣言します。 c_stgName varchar(50) を宣言します。 完了を宣言 INT DEFAULT 0; select Name,StgId from StgSummary ORDER BY StgId desc LIMIT 3 の cr カーソルを宣言します。 見つからない場合の継続ハンドラを宣言し、done = 1 を設定します。 -- カーソルを開きます open cr; テストループ:ループ -- 結果を取得するには、cr を c_stgName、c_stgId に取得します。 完了 = 1 の場合 テストループを終了します。 終了の場合; c_stgName、c_stgIdを選択します。 END LOOP testLoop; -- カーソルを閉じます close cr; 終わり; 一時テーブルが存在する場合は削除します。StgSummary; 終わり; 最初に一時テーブルを作成し、カーソルを定義します。しかし、ストアド プロシージャは保存できません。 要約する以前、SQL Server ストアド プロシージャを書いたときは、この問題にあまり注意を払っていませんでした。変数はプログラムの途中で定義することが多く、MySQL を当然のこととして何気なく書いていたため、最終的に落とし穴に陥ってしまいました。両者の間には文法的な違いはほとんどありませんが、実際に違いに遭遇すると、かなり衝撃を受けます。しかし、長い間 SQL 文を書いていないので、少し鈍感になっています。ピットを素早く書き留めて、印象を深める方が良いです。 上記は、MySQL ストアド プロシージャでカーソル ループを使用して一時テーブルを読み取る方法の詳細です。MySQL カーソル ループを使用して一時テーブルを読み取る方法の詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。 以下もご興味があるかもしれません:
|
>>: docker を使用して Kong クラスター操作を構築する
効果画像: 序文:最近、屋外の大画面プロジェクトに取り組んでいました。システムの入力方法は使いにくか...
1. docker imagesを使用して、このマシン上のすべてのイメージファイルを表示します。 2...
オフィスでは、Linux 開発環境として Ubuntu システムが必要です。現在、Ubuntu 16...
私たちウェブマスターは皆、ウェブサイトを最適化する際に記事内のキーワードを太字にすることが最適化に非...
目次序文1. 新しいVueプロジェクトを作成する2. WebStormの設定1. デバッガポートを設...
これは多くの人が遭遇した問題だと思います。実際、Web ページから FLASH をダウンロードして修...
目次序文1. 準備2. インストール3. 環境変数を設定する1. 「新規」をクリックすると、ポップア...
フレームとは、Web ページ画面を複数のフレームに分割したもの(複数の Web ページという形で表示...
1. 一般的に、CentOS では mariadb がデフォルトでインストールされているため、まず ...
このデータベースをダウンロードするには、多くの時間とトラフィックがかかります。踏み込んだ落とし穴で時...
国内の多くの広告主にとって、印刷広告の制作と評価は、しばしばかなり主観的です。自分の感情や美的感覚に...
MYSQLは大文字と小文字を区別します言葉を見れば信じられます。タイトルを見れば内容がわかります。 ...
この記事では、JS掃海プロジェクトの概要を参考までに紹介します。具体的な内容は次のとおりです。プロジ...
この記事では、テーブルの編集操作を実現するためのjs+Htmlの具体的なコードを参考までに共有します...
ゼロ: 古いバージョンをアンインストールするDocker の古いバージョンは、docker、dock...